模拟构造
eIectron
优美的代码是成功AC的第一步。看着那么多博客不再更新,这就是我几年后的状态吗?要是走了就再也不回来了。
展开
-
POJ3295Tautology(构造法)
TautologyTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 12088 Accepted: 4608DescriptionWFF 'N PROOF is a logic game played with dice. Each die has si原创 2016-10-02 17:21:48 · 1735 阅读 · 0 评论 -
CodeFroces 849B. Tell Your World (鸽巢原理)
题意:给出一些点,要求有一对平行的直线包含所有这些点,问是否有解。解法:当时写的是n^2的暴力,但是现在发现并不需要这么麻烦。只需要利用到鹊巢原理的性质,枚举前三个点两两匹配共三种情况,看是否有解即可。代码如下:#include#include#include#include#include#include#include#include#include#includ原创 2017-09-02 09:03:32 · 334 阅读 · 0 评论 -
CodeFroces 175A. Robot Bicorn Attack(构造)
DescriptionVasya plays Robot Bicorn Attack.The game consists of three rounds. For each one a non-negative integer amount of points is given. The result of the game is the sum of obtained point原创 2016-08-01 15:14:51 · 494 阅读 · 0 评论 -
CodeFroces 175B. Plane of Tanks: Pro (构造)
题意:如果有多于50%的人比自己优秀自己就是noob,如果只有多于20%的人比自己优秀自己就是random,如果只有多于10%的人比自己优秀自己就是average,如果只有多于1%的人比自己优秀自己就是hardcore,如果没人比自己优秀自己就是pro。代码如下:#include#include#include#include#include#include#include#原创 2017-08-29 21:08:22 · 295 阅读 · 0 评论 -
HDU 5583 Kingdom of Black and White(模拟)
题意:给出一个01串,他的价值就是每段连续的0或者1的个数的平方。现在至多一次机会变换一个位置的0或者1,问能得到最大的价值是多少。解法:很明显,让大的尽量大,这是一种贪心思想,但是仔细分析发现又不是绝对的,要看答案的贡献度,所以我们采取暴露枚举的方法即可。首先预处理出每个串的长度。然后暴力,使得左边-1自己+1,或者右边-1自己+1,看是否可以更新最大值。(注意边界)最后输出答案原创 2017-09-14 20:18:23 · 186 阅读 · 0 评论 -
UVA 465 Overflow(模拟)
发现这题有毒。。。用sscanf会wa,但是学别人用atof直接转换为浮点数的话又可以AC。。。代码如下:#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;int原创 2017-08-28 08:06:32 · 226 阅读 · 0 评论 -
UVA 10706 Number Sequence(模拟)
首先,输入的i很大,如果想直接不断跑1 12 123这样上去直接找必定是超时的。可以发现,一个数x,他12345……x一共有多少位我们是可以直接求出来的。所以我们每次直接减去这么多个数字即可。所以我们从1开始枚举x,每次i减去他的长度,直到i小于0,就说明答案就在12345……x中,直接暴力枚举即可得到答案。那么这个x可能到多大呢?我们可以估算一下,假设x=1e5,直接用等差数列求和公式,原创 2017-08-27 17:35:37 · 182 阅读 · 0 评论 -
CodeFroces Gym 100860A AutoCoder
这题只需要找一找规律即可得出答案。我们知道奇数位置肯定是一个等差数列求和。单独看偶数位置,会发现其中又蕴含了一个等差数列,把它求出来,再看剩下的,发现里面依然有一个等差数列。这样不断循环求出答案即可。代码如下:#include#include#include#include#include#include#include#include#include#include原创 2017-08-17 09:08:46 · 220 阅读 · 0 评论 -
CodeFroces 823B. Petya and Exam(构造题)
题目大意:先给出一个合法的字符串,里面的字符可以代替接下来的“?”。然后给出一个字符串,字符串里面有字母,有“?”,有至多一个“*”。?可用上面的代替,*可以由任意非上面的字符组成的字符串,可以是空字符串。给出n组查询,问是否合法。查询的总长度不超过1e5.解法:由于查询的总长度不超过1e5,所以直接一个一个对比即可。我们先对合法的字符进行预处理,做好标记。在接下来的?中,直接判断原创 2017-07-25 09:50:53 · 242 阅读 · 0 评论 -
CodeFroces 835C. Star sky(构造题)
点击打开链接题目大意:给出一些星星的亮度和坐标,然后有q次查询,查询中会一个矩形的左下角的坐标和左上角的坐标。问这个矩形范围内的星星的亮度之和是多少。当然,这个星星的亮度每秒增加1,如果超过了c,那么就归为0,不断重复。解法:开个vectorG【maxn】【maxn】,然后把星星都放进去。然后预处理了一下每一行前n个坐标在k时刻的亮度之和是多少。然后查询的时候因为只有10^5,那么即使每次原创 2017-08-01 19:48:47 · 366 阅读 · 0 评论 -
CodeFroces 195C. Try and Catch(阅读理解+猜题意+构造)
http://codeforces.com/problemset/problem/195/C哇做这题真是一口老血喷出来,看了半天不知道啥意思,最后猜了猜题意,然后代码中各种bug,我也不确定理解的题意是不是对的,xjb调试,最后竟然过了。。。一道简单傻逼题但是出的看不懂。。。题目大意:你有try和catch操作,每个catch操作保证前面有一次try和他相匹配。现在有一种异常的情况,是由t原创 2017-07-24 11:15:05 · 323 阅读 · 0 评论 -
HDU 5933 ArcSoft's Office Rearrangement(构造题)
http://acm.hdu.edu.cn/showproblem.php?pid=5933题意,给出n块价值为a的working blocks,现在要你把他们弄成k块相等的。你有两种操作,把相邻的两块合并,或者把一块拆分成任意价值的两块,问最小操作数是多少。直接构造即可。代码如下:#includeusing namespace std;typedef long long ll原创 2017-07-21 14:38:54 · 171 阅读 · 0 评论 -
CodeFroces 827B. High Load(构造法)
http://codeforces.com/problemset/problem/827/B题意:给出n个点,然后有k个点是exit-node(也就是入度为1的点),题意本来是构造一个网络,也就是像最小生成树一样,这里的区别就是,给定了点和入度为1的点的个数(也就是最外围的点),让你输出可行的边的方案。最小生成树是给出边让你构造。这里规定任何两点之间如果连成边距离是相等的。解法:我们先原创 2017-07-29 20:26:10 · 270 阅读 · 0 评论 -
CodeFroces 831B. Keyboard Layouts(构造题)
http://codeforces.com/problemset/problem/831/B题目大意:给出两个键盘,他们布局相同,只是他们对应位置的字母不一定相同。然后给出一段字符串,由第一个键盘打出,现在要求在和第一个键盘相同的键位上用第二个键盘打出一段字符串。解法:怎么搞都行。代码如下:#includeusing namespace std;int main() { ch原创 2017-07-14 16:16:23 · 346 阅读 · 0 评论 -
CodeFroces 831A. Unimodal Array(构造题)
http://codeforces.com/problemset/problem/831/A题目大意:给出一个序列,问他是否由前面上升,中间相同,后面下降的结构组成。解法:直接按照题目要求写一遍上升,保持不变,下降,看指针是否最后是否为n代码如下:#includeusing namespace std;int main() { int n, a[105]; cin >> n原创 2017-07-14 16:12:56 · 287 阅读 · 0 评论 -
CodeFroces 814B An express train to reveries(构造题)
http://codeforces.com/problemset/problem/814/B题意中,有n个流星,然后看见了两次它们的颜色,每次都只有一个流星的颜色是错误的,题目保证答案存在,输出一种可行的答案。解法,显然,如果第i个位置,a和b相同,则这个位置肯定是正确的。所以我们只需记录下不相同的位置的坐标,然后暴力。样例中也给出了,如果只有一个位置是不相同的,那么肯定这个位置a和b原创 2017-06-07 23:38:03 · 376 阅读 · 0 评论 -
Codefroces 410 C. Mike and gcd problem
http://codeforces.com/contest/798/problem/C题目大意:给定一个序列,你可以进行如下操作:对于第i个元素a和第i+1个元素b,进行操作后第i个元素变为a-b,第i+1个元素变为a+b。问,你最少进行多少次操作可以让这个序列里面两两gcd得到的值不为1。解法:首先,NO这种情况是不存在的,因为你进行一次操作后两个元素相差2*b,模拟一下(奇,偶),原创 2017-04-22 15:36:39 · 294 阅读 · 0 评论 -
CodeFroces Round 438 B.Race Against Time(模拟)
题意:给出时间,那么钟上的三个指针就确定位置,现在要从t1到t2,中途不可以穿越指针,问是否可行。解法:当时想的是既然是小时之间的,那么我只需要把小时之间的给标记了即可。但是这样写会有反例。所以应该把这个钟扩大12*60倍。然后对应的标记上每个指针的位置,然后正反for一遍即可。代码如下:#include#include#include#include#include#inc原创 2017-10-06 10:59:42 · 247 阅读 · 0 评论