2015年10月
文章平均质量分 55
萌萌哒黑大帅
这个作者很懒,什么都没留下…
展开
-
codeforces #38E
题意:有n个弹珠分别位于x轴上的一些位置,你可以选择其中的一些固定住(需要花费ci),当选择完毕之后,从最右面开始,弹珠会依次向左滚动直到遇到被固定住的弹珠(否则视为滚到无穷远处),计算花费+所有弹珠滚动的距离之和的最小值思路:使用动态规划,首先最左边的弹珠肯定是要被固定住的,接着从左向右考虑每一个弹珠,固定每一个弹珠的花费都是可以直接得到的(花费-右边所有弹珠的个数*该弹珠到它右边相邻的一个原创 2015-10-25 23:36:20 · 528 阅读 · 0 评论 -
codeforces #35D
题目大意:农场中原来有X份粮食,每天会有一个动物来,每个动物会在第i天消耗i份粮食,你可以选择接受或者拒绝,求最后能容纳的最多动物数。题目思路:每个动物消耗的粮食都是定值。。。所以可以直接安装消耗的粮食数进行排序,或者0-1背包处理均可AC代码:#include #include using namespace std;ifstream fin;ofstream fout;原创 2015-10-25 23:43:39 · 464 阅读 · 0 评论 -
codeforces #39E
题目大意:有两个人玩游戏,每次对a或b进行加1的操作,使得a^b解题思路:博弈类型动态规划,这里采用的是记忆化搜索,没有接触过此类问题的可以先做一下UVAOJ的10404,题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1345在此题原创 2015-10-26 00:01:43 · 738 阅读 · 0 评论 -
codeforces #25E
题目大意:有一个由n个点组成的无向图,给你一个邻接表,a_i,j代表从i到j的最短距离,接下来会有k次操作,每次操作会新建一条从x到y的路,求每次操作完,更新后的邻接表的每个元素和的一半。解题思路:每次操作更新x与y间的距离,首先要判断a_x,y是否需要更新,然后利用floyd算法更新其他的最短距离,但如果每次都直接更新,那复杂度是n^3*k会超时,所以考虑优化。又每次更新只更新一条边,所以用原创 2015-10-27 11:28:41 · 412 阅读 · 0 评论 -
codeforces #25D
题目大意:给你一个由n个点和n-1条边组成的无向图,问你最多去掉几条边同时增加几条边可以使得原图成为一个连通图解题思路:涉及到连通性问题,则考虑dfs或者并查集。本人采用了后者,读取每条边的同时,看两个端点是否处于一个联通块,若没有,则直接加入,否则将这条边加入一个元素为待删除的边的集合。读取完之后再把所有的点所属于的联通块(记录为根节点)放入一个set,最后轮流取出set中相邻的两项原创 2015-10-27 18:40:20 · 423 阅读 · 0 评论