摘要: 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) 编辑