脑洞题
文章平均质量分 73
Flintx
鲜衣怒马少年时
展开
-
Codeforces 534B Covered Path
这题是道水题,主要是展示一份神代码。#include<cstdio> int i,s,z,a,q; main() { scanf("%d%d%d%d",&i,&s,&z,&a); while(z--)if(i<=s)q+=i,i+=a;else q+=s,s+=a; printf("%d",q); }代码贵在精炼,可读性好并不意味着要长篇累牍。原创 2015-04-13 21:04:29 · 589 阅读 · 0 评论 -
UVALive 5760 Alice and Bob(博弈+记忆化dp or 找规律)
题意:黑板上写了n(n<=50)个不超过1000的数, 双方轮流进行以下操作中的一种: 将一个数减1,当某个数为0时将其擦去; 将两个数擦去,并将两个数之和写上黑板; 擦去最后一个数为胜者,Alice先手,求最后胜者。思路:如果所有数都是大于1的数,共可执行 cnt 次操作,其中: cnt=sum(a[i])+n−1cnt = sum(a[i])+n-1 当 cnt 为奇数时先手胜利,偶数时后原创 2015-11-10 17:11:59 · 860 阅读 · 0 评论 -
HDU 4372 Count the Buildings(组合数学,第一类Stirling数)
HDU 4372 题意:有n个建筑高度为1~n,从前看能看到f个,从后看能看到b个,求可能有多少种排序情况。 思路: 五个小时花了3.5小时在上面,结果靠强行yy出了递推式(事后发现。。yy对了95%,跪在各种细节上,比赛结束也没A掉。。 只能说大力出奇迹!但这种奇迹往往会毁在不经意的细节上orz 分析几组数据我们可以发现,最高的n号楼一定是可以看到的,无论是从左还是右。原创 2015-08-05 23:09:43 · 1145 阅读 · 1 评论 -
HDU 5407 CRB and Candies(数论+yy)
HDU 5407题意:计算: LCM(C0N,C1N,C2N,...,CNN)(1<=N<=106)LCM(C^0_N,C_N^1,C_N^2,...,C_N^N)(1<=N<=10^6)思路:先打个表看看? 我们可以发现: f(3)=f(4)/4,f(5)=f(6)/6,f(3)=f(4)/4,f(5) = f(6) / 6, f(9)=f(10)/10,f(11)=f(12)/12原创 2015-08-22 00:10:47 · 1700 阅读 · 0 评论 -
HDU 4311&4312 Meeting point-1&2 (曼哈顿距离&&切比雪夫距离)
HDU 4311 题意:平面上有n个点,一个点(x,y)只能到达(x-1,y), (x+1,y), (x, y-1), (x, y+1)4个点。从n个点中找到一点,使其他点到此点的距离之和最小。 思路: 可以发现,两个点间距离为 |x1-x2| + |y1-y2| ,这便是两点间的曼哈顿距离。 朴素的做法是遍历所有点,枚举该点与其他点间的曼哈顿距离之和,但是会TLE; 取巧的做法是将所有原创 2015-07-31 21:58:20 · 1066 阅读 · 0 评论 -
POJ 2965 The Pilots Brothers' refrigerator (想法题)
POJ 2965 题意: 输入一个形如: -+-- ---- ---- -+-- 4*4图案,+表示close,-表示open,定义一种操作为:改变某个单元格符号(+变-,-变+),同时单元格所在行与所在列的所有单元格符号都会发生改变。 求最少操作次数能使所有单元格内都是‘-’。并输出要操作的单元格。 思路: 正常的做法和POJ 1573类似,dfs枚举即可,见code1原创 2015-07-29 19:48:26 · 654 阅读 · 0 评论 -
HDU 4415 Assassin's Creed(贪心)
HDU 4415题意:壮哉我Assassin! E叔有一柄耐久度为m的袖剑,以及n个目标士兵要去解决。 每解决掉一个士兵,消耗袖剑Ai的耐久度,且获得该士兵的武器,可以使用该武器解决Bi名其他士兵。 E叔要尽可能地消耗更少耐久度解决更多的敌人,求最小消耗与最大杀敌数。思路:我们把士兵分为两个集合:e1与e2,e1的士兵 Bi = 0 , e2 的 Bi > 0.我们发现,如果能解决e2的任意一原创 2015-08-24 00:06:00 · 1364 阅读 · 0 评论 -
HDU 4293 Groups(区间dp)
HDU 4293 题意:有 n 个人,可任意分成若干组,然后每个人各提供一个信息,表示他们组前面有多少个人,后面有多少个人。问最多有多少个信息是真实的的。 思路: 这道题一开始给我的印象是什么乱七八糟的东西,后来也没想通到底该怎么做,好在赛后百度在手天下我有:) 我们可以把 这n个人看成一段区间 [1,n]。 设每个人的信息是a、b,则这个信息代表了他们组所在的区间 [a+1,n-b]。原创 2015-07-27 22:05:36 · 697 阅读 · 0 评论 -
HDU 4193 Non-negative Partial Sums(想法题,单调队列)
HDU 4193 题意:给n个数字组成的序列(n 思路: 这题看到数据规模觉得只能用最多O(nlogn)的算法,然后想到了之前刚做过的有关最小表示法的题,但还没证明出一个做这题有效的算法出来。 后来看过题解,发现用的最多的方法是单调队列,然而我对这个知识点知之甚少orz /*科普君:from单调队列 单调队列是指:队列中元素之间的关系具有单调性,而且,队首和队尾都可以进行出队操作,只原创 2015-07-26 23:18:52 · 736 阅读 · 0 评论 -
hdu 4015 Mario and Mushrooms(组合数学)
题目戳这里题意:Mario遇到了两种蘑菇:好蘑菇提升自身一点hp,坏蘑菇减少自身m点hp,当遇到一个蘑菇后Marion的hp小于或等于0时,Marion死亡。已知坏蘑菇有k个,好蘑菇k*m+1个(换句话说,生还后hp=1)蘑菇随机排列,遇到蘑菇的过程是一个接一个,输入k与m,求Marion生还概率。思路:大概是靠脑洞(卒。。 我们可以明确一件事,任一合法序列或着说生还条件,必然前k+1个是好蘑菇,原创 2015-05-15 22:23:06 · 846 阅读 · 1 评论