
模拟
Conchpeng
贵在坚持。如有错误欢迎指正。
展开
-
Saruman's Army POJ - 3069【模拟+贪心】
题意: 输入n个数字,半径r,每个数字可以上一个标记,影响的范围是[x-r,x+r],问最少需要多少次标记,才可以让所有点都被影响。思路: 先对过程模拟一遍,首先先去找数组里最小的那个数a,在a+r的范围内取找尽可能接近a+r的数组里的数t,然后标记一次,ans++。下一次就从t+r+1的位置循环上面的操作,最后输出ans即可#include <cstdio>#include <iostream>原创 2017-07-30 15:17:42 · 331 阅读 · 0 评论 -
D. Equalize the Remainders[模拟+set中lower_bound效率问题]
D. Equalize the Remainders题意:要求改变一个数组,使得模m后,结果为0,1,2,3,...,m-1都是n/m个,每次操作可以选择一个数+1,问至少执行多少次,并输出最终的数组思路:模拟当前元素应该往哪个元素去改变注意:std::set::lower_bound的复杂度为logN,而std::lower_bound的复杂度在set里是logn+n,原因大致是set是一颗平衡...原创 2018-07-09 09:54:36 · 403 阅读 · 0 评论 -
E. Subordinates【贪心】
E. Subordinates题意:已知一张图的总祖先和每个顶点拥有的祖先个数,问至少需要修改几个,使得这张图满足情况思路:模拟一下,大概就知道了吧。#include<bits/stdc++.h>#define PI acos(-1.0)#define pb push_back#define F first#define S secondusing namespace std...原创 2018-07-08 23:51:57 · 295 阅读 · 0 评论 -
D. Points and Powers of Two【结论】
D. Points and Powers of Two题意:找最长的序列,使得该序列的任意两个值的差是2的倍数. 输出长度,并输出元素思路:假设长度为3,原创 2018-06-02 23:18:40 · 654 阅读 · 0 评论 -
Codeforces Round #431 (Div. 2) D. Rooter's Song [思维+模拟]
D. Rooter's Songtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputWherever the destination is, whoever we me原创 2018-04-16 16:39:30 · 231 阅读 · 0 评论 -
cf 903B - The Modcrab
B. The Modcrabtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputVova is again playing some computer game, now原创 2018-02-02 14:42:45 · 286 阅读 · 0 评论 -
Cardiogram CodeForces - 435C 【模拟+平移思想】
题意:已知心电图的几个拐点(心电图是折现构成的),要求你用/和\代表斜线输出心电图思路:模拟。SORT一下坐标x。比较麻烦的就是 x,y轴 你怎么给应用到一个 二维数组 里来。对于这个情况,我们需要把坐标原点给搞到一个合适的地方。然后注意一下输出。还是看代码把,解释很麻烦。数据分析: 不分析,没什么特别的数据复杂度分析:不分析,没什么特别的地方错误分析:空格没输出对。对于空格,你可以先把空格用1输出原创 2017-08-06 14:09:15 · 306 阅读 · 0 评论 -
Okabe and Boxes CodeForces - 821C
题意: A,B两人起始分数分别为a,b. 他们每次可以从[-k,k]任意抽取一个数字,累加在a的基础上。问最后a能够赢b的可能性有多少种。思路: 基础的dp,可是我写的好搓。第t轮的和,可以从第t-1轮推过来,那么就是简单的递推了。要注意的地方有 下标位移要注意的地方。 我故意写了一份会TLE的代码(感觉自己太菜,想试试最基础的写法),第一份代码的复杂度为O(t*1e5*2k)≈1e2*1e5原创 2017-07-28 14:37:13 · 291 阅读 · 0 评论 -
CodeFroces 805B 3-palindrome【模拟】
题意:一个字符串由a,b,c组成,要求长度为3的子串中,不会出现回文。思路:aabb写永远不会出现长度为3的回文错误原因:题意没看清楚,蠢p#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+50;char str[maxn]={"!abbc"};int main(void){原创 2017-08-12 10:37:34 · 290 阅读 · 0 评论 -
Codeforces Round #223 (Div. 2) B. Sereja and Stairs【模拟】
题意:已知n个数,要求构成一个数列,使得构成数列中一个数最大 ,往两边依次严格递减 , 问这个数列最长多长并且输出该数列。思路:最大的放中间,第二大的往两边放,以此类推。 实现过程:用map来计数,计数完成后复制给struct。这样的好处是可以节约很多不必要的空间消耗。然后开一个数组来模拟第一句话的思路。用left,right标记左边和右边的下标。#include <bits/stdc++.h>u原创 2017-08-12 09:41:53 · 286 阅读 · 0 评论 -
C - Balls and Boxes CodeForces - 260C
题意:编号1-n个桶,每个桶里有ai个球,现在从下标为i的桶里,拿出所有的球,一直往右边放,放到n了,就再从0开始放,告诉你最后一个球放下的下标,要你输出所有桶的最初状态。 对于最初的代码,有一个没想到的bug是所有的数字都相同的情况下,下面的代码能够解决这样的问题,还是思考的不严密。思路:桶内球最少的那个下标,肯定是拿出球的桶。那么我们把所有从桶下标+1到桶的下标的球全部先拿出来,用T来保存,即T原创 2017-07-19 17:31:22 · 427 阅读 · 0 评论 -
Case of Matryoshkas CodeForces - 556C
题意:俄罗斯套娃娃。你们都懂得。 然后给定n(娃娃个数),m(几组关系),每组关系中第一个数字是num,代表后面有几个娃娃。问最少花多少时间能把娃娃从1~n套好;思路:对于能从1开始连续的,一定可以不用拆,连着就好了。然后后面统统都要拆,这样时间才会最短#include <bits/stdc++.h>using namespace std;const int maxn=1e5+500;int原创 2017-07-23 10:45:29 · 441 阅读 · 0 评论 -
E1. Median on Segments (Permutations Edition)[如何判断无序中位数]
E1. Median on Segments (Permutations Edition)题意:一个长为n的打乱的全排列,给定m,问包含m的区间中,有多少个区间的中位数是m思路:假设m的位置为pos,先处理出[pos+1~n]中到达每个点的,比m大和比m小的差值. 假设一个区间可以,那么有 大于m的数-小于m的数=1 or 0 那么. 再从[pos-1,1]处理一遍,就处理出所有的答案...原创 2018-07-10 14:31:56 · 426 阅读 · 0 评论