摘要: 题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=29365 首先排序,然后维护一个后缀,等差求下和就可以了。。 1 //STATUS:C++_AC_2090MS_1716KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include... 阅读全文
posted @ 2013-08-26 10:52 zhsl 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=29364 题意:给一个序列,输出序列中,二进制1的个数最少的数。。 随便搞搞就行了,关于更多算法,可以看. 1 //STATUS:C++_AC_290MS_1324KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include... 阅读全文
posted @ 2013-08-26 10:48 zhsl 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=29358 状态虽然很多,但是非常稀疏,dfs搜索然后剪下枝。。 或者DP,f[i][j][k]表示前 i 个物品能否到达第一个背包和第二个背包容量分别为 j 和 k 的状态,然后判断第3个背包是否能装下剩下的。f[i][j][k]=f[i-1][j][k] | f[i-1][j-v[i]][k] | f[i-1][j][k-v[i]].. 搜索: 1 //STATUS:C++_AC_10MS_1308KB 2 #include 3 #include 4 #include ... 阅读全文
posted @ 2013-08-26 10:38 zhsl 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=29357 直接模拟就可以了。。 1 //STATUS:C++_AC_190MS_1884KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include... 阅读全文
posted @ 2013-08-26 10:30 zhsl 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26482 题意:给一颗树,根节点为送电站,可以无穷送电,其它节点为house,电量达到pi时可以点亮,边为电线,传输有容量上限,求最多点亮多少个house。。 简单树形DP,f[i][j]表示第 i 个节点电量为 j 时最多点亮的house个数。那么f[u][j]=Max{ f[u][j], f[u][j-k]+f[v][k] | v为u的儿子节点 }。。 1 //STATUS:C++_AC_208MS_2032KB 2 #include 3 #include 4 #... 阅读全文
posted @ 2013-08-26 10:28 zhsl 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26480 题意:简单来说,就是给一个图,然后从每个honor list中的点求最短路。。 边权值为1,Bfs就可以了,注意这里是无向图。。 1 //STATUS:C++_AC_84MS_1788KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #inclu... 阅读全文
posted @ 2013-08-26 10:21 zhsl 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26476 题意:给一个字符序列,比如MWMMW,每次可以取前面两个中的一个,取出来后,取出来的那个个数加一,要求使得两个字符的个数不超过n,求最多能取多少个。。 贪心就可以了。 1 //STATUS:C++_AC_36MS_1480KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12... 阅读全文
posted @ 2013-08-26 10:19 zhsl 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26475 题意:每次输入一个操作,如果是数字,那么放入一个容器中,如果是#号,取出当前容器中的中间值。。 数据结构基础题,显然维护两个堆就可以了,两个堆的size大小不超过1... 其实各种数据结构都可以搞,比如线段树,先离线然后离散,然后线段树记录size,二分查找。。 1 //STATUS:C++_AC_856MS_3192KB 2 #include 3 #include 4 #include 5 //#include 6 #include 7 #include ... 阅读全文
posted @ 2013-08-26 10:14 zhsl 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=26474 题意:给一个数列,可以对三个数操作:把最后一个数放到第一个,前两个数后移一位。问最后能否到达相应的目标序列。。 先考虑三个数A B C,变换后两种情况B C A和C A B,可以证得(列举3个数的大小情况,枚举证),这三个序列变换后的逆序对个数的奇偶性是相同的,而且只有这3个序列相同,所以A B C只能到达与之奇偶相同的序列,而且是全部能到达。那么多个数的情况也是一样的,就是多个3元组的扩展。因此如果变换后的逆序奇偶性相同,那么有解,否则无解。。 1 //STATUS... 阅读全文
posted @ 2013-08-26 10:09 zhsl 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2480 题意:多次求sigma(gcd(i,n), 1 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include 21 #include 22 //#in... 阅读全文
posted @ 2013-08-26 01:51 zhsl 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2705 题意:求 sigma(gcd(i,n), 1 3 #include 4 #include 5 //#include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #include 14 #include 15 #include 16 #include 17 #include 18 #include 19 #include 20 #include... 阅读全文
posted @ 2013-08-26 01:31 zhsl 阅读(226) 评论(0) 推荐(0) 编辑