09 2015 档案
摘要:hdu1166 敌兵布阵,单点修改,区间求和。【ATTENTION】MAXN要开成节点数的4倍,开得不够会提示TLE。 1 #include 2 #include 3 #include 4 #define lson l,m,root>1;24 build(lson);25 buil...
阅读全文
摘要:【题意】给出一串数字,问中位数大于等于X的连续子串有几个。(这里如果有偶数个数,定义为偏大的那一个而非中间取平均)【思路】下面的数据规模也小于原题,所以要改成__int64才行。没找到测试数据,自己编的几组。简单来说读入每个数,大于等于中位数设为1,小于设为-1,前i个数的和建立一个树状数组,求逆序...
阅读全文
摘要:普通的Floyd了分分秒可以水过,结果在submit前删调试段落的时候把程序本体给删了吃了两个WA…… 1 #include 2 #include 3 #include 4 const int INF=3000000; 5 using namespace std; 6 const int MAXN=...
阅读全文
摘要:【题目大意】给出一个字符串,可以删除或添加一些字符,它们各自会消耗价值。问最少消耗多少价值,可以使得字符串变成回文的。【思路】事实上删除或添加字符的价值只需要保持较小的那一个。假设当前要将(j,i)转换为回文字符,那么它有以下三种情况:(1)在结尾添加或删除一个和开头一样的字符,f[j][i-1]+...
阅读全文
摘要:输入a和p。如果p不是素数,则若满足ap=a(modp)输出yes,不满足或者p为素数输出no。最简单的快速幂,啥也不说了。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 typedef long long ...
阅读全文
摘要:【题目大意】有N间牛舍和M头牛,告诉你每个牛舍的位置,求出两头牛之间最小距离的最大值。【思路】二分判断两头牛之间的最小距离d,通过贪心法进行验证。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std...
阅读全文
摘要:http://poj.org/problem?id=1064【题目大意】给出几条绳子的长度,问如果要切出k条长度相等的绳子,这k条绳子最常多长?【思路】二分。把下界设为0,上界设为所有绳子长度总和,每次取mid,判断如果每条绳子长为mid切出条数是否≥k,满足则将下边界设为mid,否则把上边界设为m...
阅读全文
摘要:IOI历史上的著名水题,我这种蒟蒻都能写的东西。【思路】用1、2、3分别代替三种食物,0表示当前矿井没有食物。f[i][a][b][c][d]当前第i个食物,矿1的食物顺序由上至下为a,b;矿2的食物顺序由上至下为c,d。判断产物数量的方法很巧妙,由下至上a,b,c。初始时默认投入一个食物至少生产一...
阅读全文
摘要:【题目大意】【思路】最简单的思路是五维数组,但是当前走到的步数由已经取到的卡片决定,所以只需要四维。本来想要改一个滚动数组的,但是好像没有滚起来,算了(ノ`Д)ノ。在学校要晚自习到21:15,回到家大概就22:00了,本来每天晚上想要切题的但是想到第二天五点多又要起床了,算了orz在努力问老师讨机房...
阅读全文