
思维
只玩三国的程序猿
23333333333
展开
-
Codeforces 577B Module Sum(分类讨论)
题意:给你n个数,问你是否可以再里面选择一些,是的他们的和模m为0。强行分类讨论。1、当n>m时 这个时候,肯定可以得到n个连续的和,那么必定产生n个模m的值, 又因为n>m,那么肯定可以找到一个要求的值。2、当n<=m时 因为m比较小,我们完全可以吧所有的可能只全部找出来,然后看 是否存在。代码://// Created by CQU_CST_WuErl原创 2016-02-11 23:17:43 · 579 阅读 · 0 评论 -
HDU 4803 Poor Warehouse Keeper(贪心)
题意: 让你按如题所示的两个按钮,初始情况是1 1,问你最少多少次可以把他按成x y。 这个贪心策略还是略机智的,因为上面一个按钮会影响下面的,而下面的只会影响单价,所以我们要尽量是下面的变大,达到一个最大值,然后上面的只要按几次就能达到了。 但是下面的也不能太大,不然等上面的按钮达到要求之后,就会使得下面的溢出了,所以我们每次在按上面按钮之前让下面的达到尽量大就可以了。代码://原创 2016-02-28 22:54:57 · 454 阅读 · 0 评论 -
HDU 4811 Ball(贪心)
题意: 给你三种颜色的球若干,让你制定一个安防策略,使得你的分数最高分的规则是:当前安放的球前面的颜色的种类a+后面的颜色的种类b(不包括本身) 首先我们肯定是把球往中间放,如果能够让前面后面都有三种颜色的话,那剩下的球的分数都是固定的,所以说我们只要先构造出一种情况是的前面后面的不同颜色种数最多即可,剩下的就直接算了。代码://// Created by CQU_CST_WuEr原创 2016-02-28 23:10:51 · 757 阅读 · 0 评论 -
Codeforces 671B Robin Hood (二分搜索)
题意: 给定一个数列,每次让最大值-1,最小值+1,问你k次操作之后,数列中的最大值和最小值的差值是多少。解法: 不管结果是怎样的,我们可以确定的是,最后的最大值和最小值肯定是固定的,但是我们不能确定到底是多少,所以我们需要尝试,而且随着操作次数的增加,最大值会越来越小,最小值会越来越大,所以我们采用二分搜索来找最后的值。值得注意的是,寻找最大值和最小值的边界是不一样的,具体在代码中。代原创 2017-01-18 16:05:26 · 573 阅读 · 0 评论 -
Codeforces 677D Vanya and Treasure(DP+分治) category:
题意: 一个图上有一些宝箱,每一个级别的箱子里有搞一个级别箱子的钥匙,而最高级别的里面有宝藏,每次从(1,1)出发,问你拿到宝藏所要走的最短距离是多少。解法: 这题如果直接来暴力更新的话,复杂度要炸,但是我们可以发现,每一次更新的时候,之和当前级别和前一个级别有关,所以如果两个级别的数量加起来大于m*n的话,我们就直接bfs就好了,这样可以把复杂度降到mnsqrt(nm)。话说这个方法我以原创 2017-01-18 16:17:53 · 678 阅读 · 0 评论 -
Codeforces 700A As Fast As Possible(机智)
题意: 题意就不说了,其实是小学的题目,推公式就好了。分析: 首先可以知道最短的时间就死每个人在车上的时间一样的,那么我们可以设这个为x。假设一共要运k次,那么前(k-1)次车把人往前运,然后回头接其他人,最后一次直接到终点,推导下公式就好代码://// Created by CQU_CST_WuErli// Copyright (c) 2016 CQU_CST_WuErli.原创 2017-02-02 21:43:35 · 486 阅读 · 0 评论 -
Codeforces 698B Fix a tree (模拟)
题意: 给你一个在某一个特定根下,书中每一个节点的父亲,问你如何修改,能够使得形成一棵树。分析: 主要还是怎么机智的实现这些东西,因为是在某一个根的情况下,所以对于所有的p[i] == i的点,都可以算是不符合要求的点(出了根节点),随意我们标记出所有的这种点,然后选择其中一个为根,其他的全部链接过来即可。比赛的时候没想到这个,写的太复杂,还没过样例。。。结果集训队大神几十行就搞定了(ra原创 2017-02-02 21:43:00 · 424 阅读 · 0 评论