ACdream
文章平均质量分 67
404-unkown
这个作者很懒,什么都没留下…
展开
-
爱爬山的小Z
E - 爱爬山的小Z Time Limit: 6000/3000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 从前有一座ACdream王国,这个王国被群山环绕,因此外面的人很少有人知道它的存在。 这个王国里,有一位很喜欢爬山的原创 2015-09-09 15:06:32 · 714 阅读 · 0 评论 -
小晴天老师系列——竖式乘法(暴力)
题目大意:按照竖式乘法,给出算式中的几个数,求有多少种情况符合。 分析:只需枚举两个因数即可,剩下的格子根据乘法和加法规则确定。 另外,注意的一个技巧,求一个数的某一位数,就用这个数除以位数再对10取余,例:求1234的百位,(1234/100)%10 = 2代码:#include <cstdio> using namespace std;char s1[3], s2[2], s3[4], s4原创 2015-05-24 11:52:26 · 35808 阅读 · 0 评论 -
瑶瑶带你玩激光坦克(暴力)
题目大意:给出一张地图,瑶瑶从开始位置,射出激光,问最多能打到多少个敌人。激光可以通过地图上的镜子反射,并且不会伤到瑶瑶自己,而是穿过她。 分析:直接用dfs递归的话,会爆栈,导致RE。所以,直接用循环来模拟全过程。 代码: #include #include #include using namespace std; const int maxn = 1111;原创 2015-09-04 11:59:56 · 621 阅读 · 0 评论 -
DFS专题--Hand in hand
题目大意: n个人,每个人左手右手各有一个数字,围成圈,拉着的两只手的数字要求互质,求情况总数。分析: 两种解法。一、由于是围成一个圈,所以,先固定一个人的位置,对另外n-1个人进行全排列,判断是否互质。二、DFS搜。 注意,n=1时,答案为0。T^T….没考虑这个,找了半天没找出错误….代码://方法一、next_permutation #include <cstdio> #include <c原创 2015-06-17 21:00:43 · 437 阅读 · 0 评论 -
小晴天老师系列--我有一个数列!(暴力)
题目大意:给出一个数列,以及一个值k。问有多少个连续数列,满足数列中最大值大于k。 分析:假设每个值都能作为最大值。遍历一遍数列,当前值大于k的话,满足条件的连续序列个数就累加上当前的位置,否则的话,就相当于之前的每个连续序列向右扩充一个数,也就是累加上之前一次的连续序列个数。 代码: #include #include #include using namespace原创 2015-09-03 23:25:29 · 419 阅读 · 0 评论 -
女神教你字符串——AC不只是一个梦想
题目大意:匹配字符串,”ACdream”。不区分大小写,忽略空格,回车。 分析:大致有三个坑点。一、统一大小写。二、如何处理行末回车,将多行字符串合并为一行。三、一行里可能不止一句。代码:#include <iostream> #include <cstdio> #include <cctype> #include <string> #include <cstring> using namespa原创 2015-05-24 11:16:17 · 621 阅读 · 0 评论 -
ACdream发电站(贪心)
题意:在一个数轴上,有n户人家,在[a,b]之间建一个水电站,求位置,使得水电站离最近的人家距离最大。 分析:最优地点有三种情况。一、端点a。二、端点b。三、相邻两家的中点。代码:#include <cstdio> #include <cmath> #include <algorithm> using namespace std;int main() { int n, a, b, c[10原创 2015-05-24 11:26:25 · 877 阅读 · 0 评论 -
哗啦啦族的24点游戏(DFS)
C - 哗啦啦族的24点游戏 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 哗啦啦族的小Q是一个狂热的24点爱好者,24点就是给你一串数字,问你是否通过加减乘除括号构成24点。 唐原创 2015-09-05 13:46:46 · 1040 阅读 · 1 评论 -
哗啦啦族的加法计算(DFS)
D - 哗啦啦族的加法计算 Time Limit: 12000/6000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小彭玉今天开始学习加法啦! 唐老师写了个加法等式,小彭玉扑通扑通就凑出来了一种合法解 唐老师又写原创 2015-09-06 09:39:07 · 434 阅读 · 0 评论 -
哗啦啦族的01背包问题(折半枚举)
E - 哗啦啦族的01背包问题 Time Limit: 10000/5000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 背包背包! 唐老师非常开心的在给小彭玉讲背包问题,“01背包就是在M件物品取出若干件放在空间为W的背包里原创 2015-09-06 09:29:18 · 606 阅读 · 0 评论 -
小Y上学记——小Y的玩偶(贪心)
小Y上学记——小Y的玩偶 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小Y最喜欢拆拆拆了~尽管他不一定能装回去。 小Y有一个很可爱的积木玩偶,是由一块一块积木拼接而成,现在小Y想把这原创 2015-09-08 00:42:55 · 436 阅读 · 0 评论 -
SGU195--New Year Bonus Grant (贪心)
题目大意:某公司有N个员工。编号1到N,除了老板(编号1)外,每个人都有一个上司。现在过年了,老板要给员工发奖金,为了避免贪污,指定了三个规则:一、每个员工要么从上司那里拿奖金,要么发奖金给下属,要么什么都不做;二、一个员工不能既从上司那里拿奖金,又给下属发奖金。三、一个员工最多给一个下属发奖金。员工们现在都知道了这些规则,想尽办法拿奖金,貌似越底层越机智?问所有员工最多能拿到多少奖金。原创 2015-09-04 12:42:17 · 316 阅读 · 0 评论 -
女神教你字符串——违和感(字符串)
题目大意:给出一个字符串。若可以通过删掉一个字符,使之变为回文串,则输出删除字符的下标(从0开始)。若不能或不需要删除,则输出-1 分析:虽然说是字符串的题,,但是感觉就是各种回溯。。回溯之前,暴力地判断下本身是否为回文串。。代码:#include <iostream> #include <cstdio> #include <string> #include <cstring> #include原创 2015-07-17 21:37:35 · 569 阅读 · 0 评论 -
LCM Challenge(暴力)
题目大意:求不超过n的三个数的最大公倍数。 分析:首先要知道两个数论性质:1、相邻两个整数互质。2、相邻两个奇数互质。 然后,小数据观察规律,按n的奇偶性讨论。 一、n为奇数时,n-2必定为奇数,而n-1与它俩都相邻,因此,两两互质。最大公倍数即为n*(n-1)*(n-2)。 二、n为偶数时,由于n与n-2均为偶数,所以,退而求其次,选择n-3。又n与n-3是否互质,衍生出两种情况:原创 2015-05-24 11:43:40 · 820 阅读 · 0 评论 -
Circle vs Triangle(DFS+博弈)
题目大意:在一个棋盘上,Alice和Bob两人轮流放棋子,Alice先手,问Alice是否必胜 分析:首先介绍一下博弈的思想。 对于1VS1的棋类游戏而言,如果这一步我有必胜策略,那我就可以必胜;如果无论我这一步怎么操作,对方都有必胜策略,那么我就必败。注意前一句的条件是“存在”,后一句是“任意”。这两句话构成了博弈论的基石。 然后,就可以DFS搜是否存在必胜策略即可。 代原创 2015-09-05 12:41:49 · 387 阅读 · 0 评论 -
小晴天老师系列——可恶的墨水瓶(floodfill)
题目大意:找出最大的8连通块 分析:dfs。。。对每一个访问过的顶点要标记一个vis来避免重复访问,同时要避免越界,可以考虑在格子的周围绕一圈0来进行隔离。这个算法名字叫floodfill,洪水填充法?代码:#include <cstdio> #include <cstring> #include <algorithm> using namespace std;int m, n, g[25][25原创 2015-07-17 21:07:45 · 490 阅读 · 0 评论 -
喵哈哈的日常选数问题(数位DP)
题目大意:给出一个区间,求不含37或者4的数个数 分析:经典数位DP问题。推荐一个ppt:http://wenku.baidu.com/view/9de41d51168884868662d623.html代码:#include <iostream> #include <string> #include <cstring> #include <algorithm> using namespace s原创 2015-07-17 21:48:17 · 345 阅读 · 0 评论 -
小晴天老师系列——苹果大丰收(动态规划)
题目大意:m个苹果,n个一模一样箱子,求有多少种分法。 分析:分两种情况。 1、当苹果比箱子多的时候,方法数等于把i个苹果放入j-1个箱子的方法数加上,先把每个箱子都放一个苹果后,剩余的苹果放入j个箱子的方法数。 2、当苹果比箱子少的时候,方法数等于把i个苹果放入j-1个箱子的方法数 状态:dp[i][j]表示把i个苹果放入j个箱子的方法数。 状态转移方程: 1、当i >原创 2015-05-24 12:13:12 · 776 阅读 · 0 评论 -
哗啦啦村的扩建(树形DP)
题目大意:已知,n个房子,n-1条路,保证从任意房子可以到达任意其他房子。对于每条道路,假设这条道路左边有x个房子,右边有y个房子,这条道路长度为k,那么费用就是k*|x-y|。请问,修建这n-1条路的费用是多少? 分析:给出一个最小生成树,自然就想到树形DP,从任意一个房子开始搜都可以。代码:#include <cstdio> #include <iostream> #include <cstr原创 2015-07-12 21:41:33 · 396 阅读 · 0 评论 -
Robbers(贪心)
题目大意:N个强盗抢银行,抢了M个金币,他们按事先的比例分金币,但可能会出现半个金币之类的情况~那么这样就不公平啦~问怎样分配使得不公平度之和最小。 分析:这里的贪心策略是,先向下取整着分给每个人。然后,多余的金币,每次分给不公平度最大的人。 代码: #include #include #include #include using namespace std; c原创 2015-09-05 01:33:57 · 435 阅读 · 0 评论 -
雷霆战机(贪心)
题目大意:此处省略N个字 分析:仔细分析,逻辑理清就行。 首先第一步是把经验球按从小到大排序,sort走起。然后我们LV1经验0开始模拟,按以下策略进行操作 1.先从小到大枚举经验球,找到第一个能直接进阶的,别想了,直接吃了,因为吃后面的会浪费得更多。 2.如果即使最大的经验球也不能进阶,那就倒过来吃当前最大的 2.1如果能进阶,进阶之后重复以上策略,开始下一次的模拟 2.2如果吃完最大原创 2015-07-17 21:13:09 · 383 阅读 · 0 评论 -
ACfun(字符串)
题目大意:给出一个只含有A和C的字符串,求一个在所有子串中都没出现过的字典序最小的字符串 分析:强调字典序这个概念,比如,AAA小于AC。最优秀的做法就是在给定的字符串上枚举最长的连续A串,然后你只要比它多输出一个就可以了。代码:#include <cstdio> #include <cstring> #include <algorithm> using namespace std;int mai原创 2015-07-17 21:27:24 · 487 阅读 · 0 评论 -
喵哈哈村的挑衅(区间DP)
题目大意:有两排物品,每排都有n个,青君和狗哥轮流从每排的两侧拿任意一个物品。青君先手,假设狗哥绝顶聪明,青君所拿物品价值之和最大为多少? 分析:区间DP。 状态:dp[x1][y1][x2][y2],表示在区间[x1, y1]和区间[x2, y2]中能取到的最大值。 状态转移方程:有四种情况,分别为x1+1,y1-1,x2+1,y2-1。显然取四个原创 2015-07-12 21:30:20 · 533 阅读 · 0 评论 -
小Y上学记——修学分(拓扑排序)
A - 小Y上学记——修学分 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Status Problem Description 小Y终于如愿以偿地通过高考来到了魂牵梦萦的大学校园——ACdream大学。来到校园的第一件事就是选课。 由于原创 2015-09-07 23:42:20 · 471 阅读 · 0 评论