随笔分类 - ACM解题笔记
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=4121首先对标题赞一个,非要叫 “Xiangqi” 而不是 ”中国象棋“ 或者 ”Chinese chess“ 。。然后是题意:黑棋只剩下一个”将“了,红棋各种 ”车” “马” “炮“,判断黑棋是不是死棋了。...
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=4493题意我都不好意思说,就是求12个数的平均数。。。但是之所以发博客,显然有值得发的。。。这个题最坑的地方就是结果精确到便士,也就是小数点后2位,不输出后缀0,所以需要处理一下输出格式。一开始我是用c语言这...
阅读全文
摘要:题目:http://poj.org/problem?id=1699无意间A了。。超时一次,加了一句if(len > ans)return; 然后就A了,dfs题,没有太多好说的,代码写的效率高一点就行。 1 #include 2 #include 3 4 char str[10][25]; 5...
阅读全文
摘要:题目:http://poj.org/problem?id=2886左右转的果断晕,题目不难,关键是准确的转啊转。因为题目要求输出约数个数最多的数,所以预处理[1,500000]的约数的个数就行了。还有利用反素数的做法,太专业了,还是暴力预处理吧。。。 1 #include 2 #include ...
阅读全文
摘要:题目:http://poj.org/problem?id=2406跟1961差不多,题解就不写了,一开始理解错题了,导致WA一次。 1 #include 2 #include 3 #include 4 int n, next[1000010]; 5 char s[1000010]; 6 voi...
阅读全文
摘要:题目:http://poj.org/problem?id=1961很好的题,但是不容易理解。因为当kmp失配时,i = next[i],所以错位部分就是i - next[i],当s[0]...s[i]是一个周期串时,i-next[i]显然就是一个循环节,这时(i+1) % (i-next[i]) =...
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1394没看到多组输入,WA了一万次。。。。。。其实很简单,有人暴力过得,我感觉归并排序、二叉排序树求逆序数都可以,但是我没写。 1 #include 2 #include 3 4 const int M...
阅读全文
摘要:题目:http://poj.org/problem?id=2777虽然是简单题,但是我还是写一下我的理解。插入和查询都是自上而下进行的,所以如果当前线段是红色的,那么子节点肯定也是红色的,不必继续往下遍历,这便是lazy的核心。所以我们要标记一段线段是否是纯色的,这个题颜色用1-30来表示,所以我用...
阅读全文
摘要:题目:http://poj.org/problem?id=2828很巧妙的题,逆序插入线段树,这样元素不用移动。用二叉排序树也能过。 1 #include 2 #include 3 4 const int MAXN = 200010; 5 6 int pos[MAXN], val[MAXN]...
阅读全文
摘要:题目:http://poj.org/problem?id=2528很经典的题目,线段树入门题,写了好几天终于懂离散化了。题意是在一个被分成10000000 段的墙上贴海报,从L贴到R,问最后能看见几张海报。因为海报只能是后来的覆盖先来的,所以逆序贴,每贴一张就标记它表示的线段,这样当贴到第i张时,如...
阅读全文
摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1166简单题,1A了,这个好像就是传说中的“点树”。设当前结点表示线段[left, right],编号为i,则结点的左孩子表示线段[left, mid], 编号为2*i,右孩子表示线段[mid+1, righ...
阅读全文
摘要:题目:http://poj.org/problem?id=3122这个题就好多了,没有恶心的精度问题,所以1A了。。 1 #include 2 #include 3 4 const double PI = acos(-1); 5 int r[10010], t, n, m; 6 7 int ...
阅读全文
摘要:题目:http://poj.org/problem?id=1905恶心死了,POJ的输出一会要lf,一会要f,而且精度1e-13才过,1e-12都不行,错了一万遍终于对了。 1 #include 2 #include 3 4 int main() 5 { 6 double l, n, ...
阅读全文
摘要:题目:http://poj.org/problem?id=2983 1 #include 2 #include 3 4 struct Edge 5 { 6 int u, v, w; 7 }edge[200010]; 8 9 int main()10 {11 int n, m;...
阅读全文
摘要:题目:http://poj.org/problem?id=1201 1 #include 2 #include 3 #include 4 #include 5 6 const int INF = 0x3f3f3f3f; 7 8 struct Edge 9 {10 int v, w...
阅读全文
摘要:题目:http://poj.org/problem?id=1716 1 #include 2 #include 3 #include 4 #include 5 6 const int INF = 0x3f3f3f3f; 7 8 struct Edge 9 {10 int v, w...
阅读全文
摘要:题目:http://poj.org/problem?id=3258又A一道,睡觉去了。。 1 #include 2 #include 3 4 int d[50010]; 5 int s, n, m; 6 7 bool judge(int mid) 8 { 9 int sum = 0,...
阅读全文
摘要:题目:http://poj.org/problem?id=3273 当分成的组数越多,所有组的最大值就会越小或不变,这一点不难证明: 如果当前分成了group组,最大值是max,那么max的这一组天数>=1,这时把max的这一组再分成2组,总的组数变成了group+1,最大值显然会减小或不变(当...
阅读全文
摘要:题目:http://poj.org/problem?id=3273二分枚举,据说是经典题,看了题解才做的,暂时还没有完全理解。。 1 #include 2 #include 3 4 int n, m; 5 int a[100000]; 6 7 bool judge(int x) 8 { 9 ...
阅读全文
摘要:题目:http://poj.org/problem?id=3264给定一段区间,求其中最大值与最小值的差。 1 #include 2 #include 3 #include 4 5 int dpMin[50010][31], dpMax[50010][31]; 6 7 int RMinQ(...
阅读全文

浙公网安备 33010602011771号