随笔分类 - 贪心
摘要:A. The Child and Homework注意仔细读题,WA了好多次,=_= 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int maxn = 110; 7 8 char s[4][maxn];...
阅读全文
摘要:今天唯一的成果就是把上次几个人一起开房打的那场cf补一下。A. Combination Lock此等水题看一眼样例加上那个配图我就明白题意了,可是手抽没有注释掉freopen,WA了一发。 1 #include 2 using namespace std; 3 4 const int maxn ...
阅读全文
摘要:首先对物品按重量从小到大排序排序。因为每个背包最多装两个物品,所以直觉上是最轻的和最重的放一起最节省空间。考虑最轻的物品i和最重的物品j,如果ij可以放在一个包里那就放在一起。否则的话,j只能自己单独放在一个包里,因为最轻的都不行,其他物品就更不可能和j放在一起了。如果j可以和多个物品放在一起,那么...
阅读全文
摘要:拖了好久的题解,想想还是补一下吧。A. King of Thieves直接枚举起点和5个点之间的间距,进行判断即可。 1 #include 2 using namespace std; 3 4 char s[110]; 5 6 int main() 7 { 8 //freopen("i...
阅读全文
摘要:A. Exam果然,并没有3分钟秒掉水题的能力,=_=||n = 5的时候将奇数和偶数分开输出即可保证相邻的两数不处在相邻的位置。 1 #include 2 using namespace std; 3 4 int main() 5 { 6 int n; 7 cin >> n; ...
阅读全文
摘要:如果硬要说这算是博弈题目的话,那这个博弈是不公平博弈(partizan games),因为双方面对同一个局面做出来的决策是不一样的。我们平时做的博弈都是公平博弈(impartial games),所以在这道题里面,那些必胜必败状态,SG函数SG定理都派不上用场了。但是,这道题是可以贪心的。比如第一个...
阅读全文
摘要:A. Playing with Paper如果a是b的整数倍,那么将得到a/b个正方形,否则的话还会另外得到一个(b, a%b)的长方形。时间复杂度和欧几里得算法一样。 1 #include 2 #include 3 using namespace std; 4 5 //const int m...
阅读全文
摘要:A. Pangram题意:判断字符串中26种字母是否全都出现过,不区分大小写。题本身不难,可是忘了用getchar()吞掉输入第一行最末的换行符,导致被某些别有用心的人在比赛快结束的时候Hack了。 1 #include 2 using namespace std; 3 4 const int ...
阅读全文
摘要:这个题目感觉略简单,但是后两题还是一个没做出来╮(╯_╰)╭A. A and B and Chess就是比较一下棋盘上两边的权重。 1 #include 2 using namespace std; 3 4 const int maxn = 10; 5 6 char s[maxn][maxn]...
阅读全文
摘要:A. Vitaly and Strings题意:给出两个长度相同的字符串,问是否存在一个字符串,该串的字典序大于输入的第一个串 且 小于第二个串。分析:找出比第一个串大一的串,看看它是否小于第二个串,是的话就满足,否则不存在这样的串。 1 #include 2 using namespace st...
阅读全文
摘要:昨天注册了没有打,晚上给长辈们敬完酒,回来就洗洗睡了,=_=||A. Drazil and Date题意:是否有可能恰好用s步,从原点走到(a, b)。分析:首先要走到终点至少要|a|+|b|步,如果还剩多余的步数的话,那就向右走一格再走回来。也就是s要比|a|+|b|多偶数步(包括0)才可以。 1...
阅读全文
摘要:A. Pasha and Pixels (水题 暴力)题意:有一个n×m的矩阵,最开始所有的格子都是白色的。一个人按照某种顺序将格子涂成黑的,如果某个格子已经是黑的则忽略。在涂色的过程中如果出现了2×2的全黑小方阵,则游戏失败。输出游戏是在哪一步失败的,或者没有失败。分析:直接用一个矩阵模拟即可,每...
阅读全文
摘要:A. Amr and Music (贪心)水题,没能秒切,略尴尬。 1 #include 2 #include 3 using namespace std; 4 5 const int maxn = 100 +10; 6 int a[maxn], r[maxn], ans[maxn]; 7 ...
阅读全文
摘要:可能是因为这次没有分Div.1和Div.2,所以感觉题的难度比较大。题意:给出一个1~n的排列和一个邻接矩阵A,Aij = 1表示可以交换排列的第i项和第j项,问经过若干次交换后,求能够得到最小字典序的排列。分析:如果a和b可交换,b和c可交换,则a和c也可以交换位置。如果把这n个位置看做顶点,两个...
阅读全文
摘要:A. Minimum Difficulty题意:有一个递增序列a,现在要去掉除了第一项和最后一项元素外的某一项,使新数列中相邻元素之差的最大值最小。分析:先求出原序列a中,相邻两项元素之差的最大值m。枚举去掉ai,则新序列相邻元素差的最大值为max{ m, ai+1 - ai },然后记录最小值即可...
阅读全文
摘要:A. Vanya and Cubes题意:给你n个小方块,现在要搭一个金字塔,金字塔的第i层需要 个小方块,问这n个方块最多搭几层金字塔。分析:根据求和公式,有,按照规律直接加就行,直到超过n。 1 #include 2 3 int main() 4 { 5 int n; 6 ...
阅读全文
摘要:题意:一个由若干小正方体组成的图形,给出它的正视图和侧视图,求满足条件的最少小正方体的个数。分析:虽说是一道简单的贪心,可一直没有太好的思路。又一次可耻地看了别人的题解。http://blog.csdn.net/u011345461/article/details/38491661 1 #inclu...
阅读全文
摘要:题意:有司机,下午路线,晚上路线各n个。给每个司机恰好分配一个下午路线和晚上路线。给出行驶每条路线的时间,如果司机开车时间超过d,则要付加班费d×r。问如何分配路线才能使加班费最少。分析:感觉上是要先排序,然后时间最长的路线配另一个时间最短的路线。这里就严格证明一下这样贪心的正确性。以两条路线为例,...
阅读全文
摘要:题意:田忌和齐王各有n匹马,如果马的速度比齐王的快就赢200,慢则输200,相等不赔不赚。已知两人每匹马的速度(为整数)和齐王所排出的马的顺序,问田忌该如何应对才能使收益最大。分析:本以为是一道很简单的贪心,上来就贪,结果什么都没贪出来。看了题解才发现贪心是比较复杂的。这里贴上poj某牛的神分析。贪...
阅读全文
摘要:题意:一共有n项服务,每项服务有安装的时间s和截止时间d。对于每项任务,如果有一项超出截止时间,惩罚值为所超出时间的长度。问如何安装才能使惩罚值最大的两个任务的惩罚值之和最小。分析:如果是求总惩罚值的最小值,则按所有任务的截止时间排序,这样贪心的理由是,先完成截止时间早的任务至少不会是情况变得更坏。...
阅读全文