上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 18 下一页
摘要: dp。 如果状压dp的话,只能拿到50分。而正解既比状压好写,又是正解。。 f[i][j][k]表示第i行有j列有一个棋子,有k列有俩个棋子,然后dp转移一下就好了(方程太难写,不写了。。。) 100*100*mod可能爆int,所以用了long long。 阅读全文
posted @ 2016-06-23 19:18 invoid 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 更相减损数。 上手就debug了3个小时,直接给我看哭了。 3个函数都写错了是什么感受? 乘2函数要从前往后乘,这样后面的数乘2进位以后不会干扰前面的数。 除2函数要从后往前除,这样前面的数借来的位不会除2次。 然后函数里面俩个类里面的变量名不要打混。 哭瞎 #include #include #include using namespace std; const int ma... 阅读全文
posted @ 2016-06-23 18:27 invoid 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 费用流。 这道题的模型比较明显,拆点也是很容易看出来的。 #include #include #include using namespace std; const int maxn = 1000 + 10; const int maxm = 500000 + 10; const int inf = 0x3f3f3f3f; int g[maxn],v[maxm],f[maxm],c[ma... 阅读全文
posted @ 2016-06-23 15:44 invoid 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 莫名其妙的dfs算法。 1.这道题首先要推出来,如果有弓形或者环形,答案必须是环长度和弓形俩条路长度之差的约数。 而且如果你直接按照原图来建图你是跑不出来的。 1.如果你每个点访问一次时dfs所有点,tle。 2.如果你打vis标记,你判断不出来弓形,wa。 3.如果妄图用一个in数组记录哪个点in[u]=0,然后从这个点开始跑的话。整体做个环,甩出去个头支的。wa+奇奇怪怪的错误。 ... 阅读全文
posted @ 2016-06-23 08:29 invoid 阅读(223) 评论(0) 推荐(0) 编辑
摘要: dp. 用g[x][i]代表第x根柱子的i个原盘会到哪个柱子,f[x][i]代表所用步数。 则根据g[x][i-1]和g[g[x][i-1]][i-1]就能知道搬运的过程是怎样的。 #include #include #include using namespace std; char p[7][3]; int g[40][3],n; long long f[40][3]; ... 阅读全文
posted @ 2016-06-21 13:29 invoid 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 二分+dfs。 这道题求图的最小环的每条边的权值的平均值μ。 这个平均值是大有用处的,求它我们就不用记录这条环到底有几条边构成。 如果我们把这个图的所有边的权值减去μ,就会出现负环。 所以二分求解。 阅读全文
posted @ 2016-06-20 20:49 invoid 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 莫比乌斯函数。 完全平方数的倍数有如下特点。 1.首先不是质数的完全平方数可以忽略不计,因为它总是一个质数的完全平凡数的倍数。 2.每个质数i的完全平方数的倍数的个数为(n/(i*i))。 3.每对质数i,j的完全平方数的倍数已经在i和j时被重复统计了俩次,个数为(n/((i*j)^2))。 。。。 阅读全文
posted @ 2016-06-20 10:28 invoid 阅读(143) 评论(0) 推荐(0) 编辑
摘要: tarjan,状态压缩。 首先直接暴力可过。 第一步tarjan缩强联通分量,图变成一个dag。跑一个拓扑排序。 然后倒序用一个f[i]二进制数组表示i能到达的点。 因为2000个点已知数据类型放不下,用一个bitset。 然后答案就是sum(size[u]*size[v]) f[u][v]=1,u能到v。 #include #include #include #include ... 阅读全文
posted @ 2016-06-17 12:11 invoid 阅读(167) 评论(0) 推荐(0) 编辑
摘要: dp. 用到俩次dp,用1和0代表俩种颜色,首先对于每块木板我们进行一次dp,g[i][j]代表前j个格子刷i次最多能涂到几个格子。 则 g[i][j]=max(g[i-1][k],max(cnt[j]-cnt[k],j-k-cnt[j]+cnt[k])。 k #include #include using namespace std; const int maxn = 100 + 10; ... 阅读全文
posted @ 2016-06-17 10:57 invoid 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 矩阵乘法。 x[n] = {x[0],1} * ( {a,0} ^ n ) {b,1} 写成这样谁能看懂。。。。 noi里的大水题。我居然 都1A了。 阅读全文
posted @ 2016-06-16 20:26 invoid 阅读(124) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 18 下一页