2 ID_BePosit

尚未进行身份认证

我要认证

如果今天不比昨天多做一点什么,那么明天还有什么意义。

等级
TA的排名 1w+

2018级《程序设计基础(B)》期末机考--18计科(1801--1806)

今年是哪年?:签到 :#include<bits/stdc++.h>using namespace std;int main(){ int n; scanf("%d",&n); if(n>=2018)printf("What?\n"); else printf("I know\n"); return 0;}珂...

2019-01-05 21:24:14

最长回文 HDU - 3068 -Manacher

最长回文  HDU - 3068  以每个点 为中心的最长回文长度为 半径 -1 #include<bits/stdc++.h>using namespace std;#define maxn 123465char str[maxn],cp[maxn*2];int p[maxn*2],len,ans;void manacher(){ int mx=0,i...

2018-12-29 12:22:59

Polygon for the Angle-几何-性质

Polygon for the Angle 思路:根 据 几 何 性 质 , 正 多 边 形 所 有 三 个 点组成的 角 都 是最小角的倍数, 然后根据内角公式 可以求出  正多边形 最小角为   多边形内角 / (n - 2)   然后 打表发现 180边形最小角为1  最大角 178  所以 只有 179无法组成, 然后继续往后打表 发现 360边形 可以 组成 179。所以 打好最大...

2018-12-29 11:21:16

Easy Problem-简单DP

Easy Problem 思路:设dp [ i ] [ j ] 表 示 前 i 位 匹 配 了 hard 的 前 j 个 字 符,破 坏 掉 需 要 的 最 小 的 代 价 。 破 毁 掉  前 1 个 只 能 破 坏 自 己,坏 掉 前 两 个 可以通过破坏第一个 或第二个 ,依次类推,按顺序转移 dp  [ i ] [ 3 ] 转移 是min ( d p [ i -  1 ] [ 3 ]...

2018-12-29 11:12:49

How many HDU - 2609 -最小表示法

How many  HDU - 2609  思路:任何一个字符串环,最小表示都是唯一的。求出 n 个字符串环的最小表示,set统计种类即可。 #include<bits/stdc++.h>using namespace std;#define maxn 12345set<string>ok;string hk;char str[maxn];int...

2018-12-29 10:36:09

Count the string HDU - 3336-NEXT应用-前缀出现次数

Count the string  HDU - 3336  思路:首先 ans = n 是每个前缀出现一次,下面统计这些前缀作为枚举其中每个位置 作为后缀出现的次数求和即可。 这个题要求的 前缀 是包含本身的 ,但是next 中存的是 真后缀,不会重复计数。 #include<bits/stdc++.h>using namespace std;#define ...

2018-12-28 21:34:07

D - Circular Dance-思维-dfs

D - Circular Dance 思路: 随便选定一个起点即可。那就选择 1吧 , 选择建边 来把原来的图 恢复, 题目给出的信息是这个点后面的两个点 我们不能确定这个点与谁相连,当能知道的是 后面的两个点一定相连,所以建两个无向边,最终得到的vector 是 每个点都有 两个相连的点,一左一右, 题目让输出的是 从左往右 ,所以我们要保证  dfs恢复图的过程中 从1出发是往后走 。...

2018-12-28 20:39:59

Cyclic Nacklace HDU - 3746 -next -循环节

Cyclic Nacklace HDU - 3746  #include<bits/stdc++.h>using namespace std;#define maxn 123456int nxt[maxn],len,t;char str[maxn];void getnxt(){ nxt[0]=0; for(int i=1; i<len; ...

2018-12-28 19:05:06

Make It Connected-生成树

Make It Connected 题意 :给定 n给点生成一棵树,发费 任意两点可以建边 ,花费为 a [ i ]+ a [ j ] ,还有给定的一些边,都可以使用。 思路 第一种建边方式必然是选择 都插在  a[ id ]最小的点上。 所以直接建立 n-1条 与 最小的 id 相连的边即可。然后在  现在所有的边上跑一边 最小生成树即可。 #include<bits/std...

2018-12-28 17:29:12

Powers Of Two-思维

Powers Of Two 题意 : 问能否把 n分解成 k个 2 的次幂 的和 思路:优先队列维护 分成的 数,如果数目<k 取出最大的继续分解。控制好终止条件即可。 当 个数>k ,或者 小于 k 并且全为1了不能再分解了 停止输出NO,恰好为 K 停止输出即可  。  #include<bits/stdc++.h>using namespace std...

2018-12-28 17:25:00

P3431 [POI2005]AUT-The Bus-二维偏序DP

  P3431 [POI2005]AUT-The Bus 思路 :路线是向右上方运动的。我们首先对y排序,离散化.然后很容易发现,我们的状态转移为  f [ i ] = f [ j ] + v a l [ i ] ( x [ i ] > x [ j ]  & &  y [ i ] >  y [ j ] ),这时候维护当前位置之前的最大值即可. 按x进行排序 ,树状数组查询 1 ...

2018-12-27 20:15:34

P4170 [CQOI2007]涂色-区间DP

P4170 [CQOI2007]涂色 思路 :理解为“把一段连续的区间改成一个定值 当i!=j且s[i]==s[j]时,可以想到只需要在首次涂色时多涂一格即可,于是f[i][j]=min(f[i][j-1],f[i+1][j]) 当i!=j且s[i]!=s[j]时,我们需要考虑将子串断成两部分来涂色,于是需要枚举子串的断点,设断点为k,那么f[i][j]=min(f[i][j],f[i][k...

2018-12-27 15:24:51

P2774 方格取数问题-最小割模型

P2774 方格取数问题 把点权转换为了边权,我们的目的是断开一些边,使得没有路径从源点到达汇点(为了满足题目的条件)。 然后我们要使断开的边的权值之和最小(断开的边就相当于是不选那个点,就是剩下的边权之和最大) 所以我们可以跑一遍最大流求出最小割,然后用总的边权减去它就是我们的答案了 #include<bits/stdc++.h>using namespace std...

2018-12-27 09:27:27

Keywords Search HDU - 2222 -AC自动机

 裸#include<bits/stdc++.h>using namespace std;#define maxn 567891int ans,cnt,nxt[maxn],t,n;int tree[maxn][32],bo[maxn];void made(char *s){ int u=1,len=strlen(s); for(int i=0; i...

2018-12-26 20:58:03

Chip Factory HDU - 5536 -01字典树

Chip Factory  HDU - 5536  题目大意:n个数字的序列中,找出三个数字使得(a[i] + a[j])^a[k]最大。 题目思路:把这n个数字保存下来建在一个01字典树上面。因为i,j,k三个数字不能重复,所以删去要用的i和j, 再在里面找出能和num( a[i]+a[j])异或出的最大值。(注意  (1 << i) &  x  ?  1  ...

2018-12-26 18:22:25

6005-最长递增子序列 -DP-最大流

6005.「网络流 24 题」最长递增子序列 n<=500 思路:先用dp求出第一问的答案,和 dp数组,dp[i]代表以i为终点最长不下降子序列的长度 对于第二问,源点T向 dp[i]等于第一问答案的点连边,dp[i]=1的点向汇点S连边,中间的点 u和点v,如果 dp[u]=dp[v]+1且a[u]>...

2018-12-26 16:33:25

LiberOJ -6210-tree -树形DP

https://loj.ac/problem/6210 题意 :按照定义的路径计算权值方式找一条最小的权值路径。 思路 :设定dp[ i ] [ 0 / 1 ] 以1为根的情况下,以  i 节点下子树走分别全1和走一次2和剩余全走1 的最长链 每遍历一次子树,统计一次答案,DP过程中 ans1,统计 路径全为1的最大值。 ans2统计路径走 一段1中间一个2再走一段1的最长距离,三个最值更...

2018-12-26 11:52:54

C. Ehab and a 2-operation task-构造

题意: n个数,最多n+1操作,要么前i个数加x,要么前i个数对x取余,最后使得严格递增 思路 直接进行n+1次,最终目标为 1 - n-1 的递增序列。开始所有数都取余n;后面n次。 从后面开始到对 看看 这个位置的数 与 其对应的  最终应该成为的   i-1 差距是多少 ,并且需要把后面的对他造成的影响, 算在其中,不断传递 过程中 相邻两个 之间才会有影响 ,因为 传递一次 影响...

2018-12-25 22:30:28

6281. 数列分块入门 5 -区间开方

#6281. 数列分块入门 5     标记区间是否 已经全为1,暴力分块即可。  #include<bits/stdc++.h>using namespace std;#define maxn 56789int a[maxn],n,sum[maxn],flag[maxn];int b[maxn],op,l...

2018-12-25 22:28:09

6279. 数列分块入门 3 - set维护

#6279. 数列分块入门 3   利用set,只是关心相对大小,于是相同的元素自然可以只保留一个,还能保证有序,其他操作类似 #include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3f#define maxn 123456int n,op,l,r,c,ta...

2018-12-25 21:00:45

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得