摘要: 比赛现场非常遗憾地没能成功AK的一题,当时最后一个小时已经想到做法,但是交给队友化简公式的时候我竟然非常sb的给错参数了=。=。。。尽管没AK也是冠军但是还是很遗憾啊,算了当给final攒rp吧!! 题意非常简单,给1、5、100、5000、10000五种硬币,每种数量无限,现在有总价值为n的钱,问如果全部兑换成硬币的话有多少种兑换方案?两个方案如果某一种硬币兑换数量不一样即可以视为不同方案。其中n<=10^18 如果n比较小的时候这显然可以用背包dp来处理,但是这里n非常大,所以应该利用硬币价值成倍数的特殊条件来设计更快的算法。算法一:dp。这个是出题者教我的做法,时间复杂度为O(lo 阅读全文
posted @ 2013-05-13 20:24 lzqxh 阅读(287) 评论(2) 推荐(0) 编辑
摘要: http://codeforces.com/contest/285/problem/E 询问有多少个长度为n的1~n的排列,有且仅有K个位置满足abs(p[i]-i)==1. 神级dp....表示比赛中我只想到了O(n^3)的dp,然后以为无效状态很多,加上cf神机 会给我祝福就直接写了,写完发现本地最大数据要跑5分钟=。=~。。真是太暴力了。。大致dp是这样的。。dp[i][j][k][msk]表示前i个位置,有且仅有j个满足上列条件的位置,且i+2~n之间的数字已经出现了k个,同时用msk一个2位2进制数表示数字i和数字i+1是否已经出现过。。。非常长的一个状态表示,当然转移很简单,按k个 阅读全文
posted @ 2013-03-23 00:02 lzqxh 阅读(227) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/contest/283/ 虽然比赛中还是犯了两个很2的错误,但是还是顺利升回红色id了=。=~。。D题推导中连续整数和竟然写少了个2~,e题读错题了。。悲剧啊A.比较简单,操作时候一直维护总和就可以了。。对于操作1(前a个数全部增加x)以及操作2(添加一个新数字在队列最后)显然可以顺利做到,而操作3则要求求出当前队列最后数字的值,我们可以用lasy的思想处理操作1即可以,如在head ~head+a 的位置增加x,我们可以在head+a的位置记录这个x(mark[head+ai]+=x),当head+a被删除之后后,才会要求求出head+ai-1位置 阅读全文
posted @ 2013-03-19 18:25 lzqxh 阅读(520) 评论(0) 推荐(0) 编辑
摘要: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=547&page=show_problem&problem=4042k 真的不明白自己为什么会老犯a打成b之类的sb错误=。=~~。打错字母再次卡了一个多钟!!! 给你一系列钥匙跟钥匙环,钥匙系在钥匙环上,钥匙环可以系在一起组成一个森林结构。。每次操作有2种分别是把钥匙从环上解下或系上,另外一种是把环与环解开或系上。。。要求最少的操作次数将A-M的钥匙弄在同一棵由环组成的树上,同时N-Z的钥匙 阅读全文
posted @ 2013-03-15 14:50 lzqxh 阅读(203) 评论(0) 推荐(0) 编辑
摘要: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=547&page=show_problem&problem=4043 不愧是fianl题。。算个最短路都这么。。。蛋疼!!。更蛋疼的是我计算距离的函数竟然返回int类型=。=,无缘无故wa了几次。。View Code //By Lin#include<cstdio>#include<cstring>#include<iostream>#include< 阅读全文
posted @ 2013-03-14 16:55 lzqxh 阅读(216) 评论(0) 推荐(0) 编辑
摘要: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=547&page=show_problem&problem=4048 又是我最喜欢的博弈,感觉非常难。。但是最后还是给我切掉了^_^! 两个集团在进行收购战争,每次每个集团可以采用两种收购操作, 1.用自己的子公司a收购自己另外的子公司b,完成之后b公司消失,a公司价值变成val[a]+val[b], 2.用自己的子公司a收购对方的子公司c,必须满足val[a]>val[c],完成之后c 阅读全文
posted @ 2013-03-13 17:01 lzqxh 阅读(336) 评论(0) 推荐(0) 编辑
摘要: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=547&page=show_problem&problem=4045 给出一个平面其中某些地方含有倾斜45度的镜子,问激光从左上角水平射入能不能从右下角水平射出,如果不能,在平面某个地方添加一面镜子使得激光可以从右下角水平射出,问有多少地方符合要求。 对于第一问可以通过模拟激光轨迹求得,模拟方法可以通过set的upper_bound实现,具体请看程序。对于第二问,我在手工模拟几副图后发现,可以 阅读全文
posted @ 2013-03-13 16:36 lzqxh 阅读(286) 评论(0) 推荐(0) 编辑
摘要: http://www.spoj.com/problems/PT07C/http://codeforces.com/problemset/problem/266/D 两道题基本意思思路,一起讲一下题解。cf那题题意很简单,求图的绝对中心,使得其到图中最远的点的距离最小,注意该中心可以存在图的边上。 作为一个懒得动脑的人(汗~)意识到答案,必然是整数或者1/2之后就决定用2分处理。。简单证明如下,设点X为图的中心,则必然存在图上同时两点u,v是最远点,即有dis[X][u]==dis[X][v],否则,我们可以将X向最远点移近一点点,构造出更优的解。。。因此ansL = (u->X-> 阅读全文
posted @ 2013-03-05 17:53 lzqxh 阅读(1206) 评论(8) 推荐(0) 编辑
摘要: 今天刷QTREE系列时候突然发现spoj很有趣的积分方法,恩,近期订一个spoj 150分的计划吧~~。。现在1分表示亚历山大, 阅读全文
posted @ 2013-02-26 20:56 lzqxh 阅读(191) 评论(2) 推荐(0) 编辑
摘要: 学了LCT之后,貌似听说QTREE系列有这方面题,做完发现原来都是树分治方面的题,=。=~www.spoj.com/problems/QTREEwww.spoj.com/problems/QTREE1www.spoj.com/problems/QTREE2www.spoj.com/problems/QTREE3www.spoj.com/problems/QTREE4QTREE1:最基本的树链剖分=。=View Code 1 //By Lin 2 #include<cstdio> 3 #include<cstring> 4 #include<map> 5 #i 阅读全文
posted @ 2013-02-26 20:43 lzqxh 阅读(1132) 评论(0) 推荐(0) 编辑