模拟
GoLakerswxy
这个作者很懒,什么都没留下…
展开
-
hdu-6301 Distinct Values(模拟思维)
题目:构造一个字典序最小的序列,满足给的m个条件,每个条件一个区间(l , r)内没有重复出现的数字。比赛时我想的是set维护下,排个序然后往后扫,不过没有写,队友写的优先队列的。刚刚写了一下,运行时间比优先队列的要长。#include<bits/stdc++.h>using namespace std;const int maxn=1e5+10;struct node...原创 2018-07-23 22:06:38 · 551 阅读 · 0 评论 -
codeforces 1028C Rectangles (模拟)
题目:给n个矩形,让你随便输出一个能被至少n-1个矩形覆盖住的整数点坐标。思路:拿过题来就写树状数组,写着写着突然感觉线段树更好维护些 emmm 然后快写完突然发现啥都不用也能做,智障阿,直接模拟就行了。。#include <bits/stdc++.h>using namespace std;#define inf 1e9const int maxn=132675...原创 2018-08-28 16:16:24 · 330 阅读 · 0 评论 -
codeforces 1020E Sergey's problem(模拟)
题目:给一个有向图,找出一个点集,使得点集内任意两点不能有边相连,并且点集外面的点可以由点集内的点最多走两步到达。思路:存一个正向图一个反向图,正向的用来遍历点找出选的点,反向图来去掉相邻两点都在这个点集内的冲突。当时弄了一个book数组0表示没有访问过,1表示访问选取这个点,2表示只访问过不选它,感觉很对,但是wa了。。刚弄明白哪里错了,想的有点肤浅了,第一遍遍历的时候。有些情况会g...原创 2018-08-12 10:41:18 · 319 阅读 · 0 评论 -
牛客网多校7 Sudoku Subrectangles (模拟瞎搞)
题目:给由一个n*m(n*m<=1e6)的矩阵由大写字母和小写字母构成,问有多少个子矩阵满足每一行每一列没有重复出现的字母思路:预处理出以每个点往上和往右的最大长度,然后n*m枚举子矩阵的右下角,看以它为右下角时有多少满足条件的即可。从这个点往上往左的点能延伸的长度都满足了单调性,所以用这个特性瞎搞一下就可以了。比赛时虽然过了这个题,但是写的比较乱改动很多,现在从新整理下思路吧。统计...原创 2018-08-10 16:27:22 · 209 阅读 · 0 评论 -
HDU-6336 Problem E. Matrix from Arrays(找规律)
题目:生成一个矩阵,然后查询一个子矩阵的所有数字和。思路:队友打表找到规律,矩阵是由一个小矩阵重复出现构成的,然后就是要找查询的矩阵中的数的和就好搞了,边界一定要处理好,刚开始想的是维护矩阵前缀和的思路,感觉并不好弄,然后想的是看每一个数对总体的贡献是多少,这样就好搞了。当时一会想这个题一会又去推另一个题的公式,有点浮躁,就没改好代码好可惜。。。还是自己太菜了!#include<b...原创 2018-08-01 19:10:44 · 150 阅读 · 0 评论 -
HDU-6326 Problem H. Monster Hunter(贪心模拟)
题目:给定一棵 n 个点的树,除 1 外每个点有一只怪兽,打败它需要先消耗 ai点 HP,再恢复 bi点 HP。求从 1 号点出发按照最优策略打败所有怪兽一开始所需的最少 HP。思路:以 1 为根将树转化成有根树,那么每只怪兽要在父亲怪兽被击败后才能被击败。假如没有父亲的限制,会产生一个最优的攻击顺序:第一步:将怪兽分成两类:a < b 的和 a ≥ b 的,前一类打完会加血,后一类...原创 2018-08-01 10:46:43 · 864 阅读 · 0 评论 -
牛客网多校7 Counting 4-Cliques (构造)
题目:构造一个<=75个点的图,使得大小为4的团恰有k个。(k<=1e6)思路:(官方题解)自己写的只过了百分之七十数据。。。•构造一个大小为t的完全图,和a, b, c, d, e五个点。•a, b, c, d, e五个点之间没有边,他们只会向t个点连边。•如果连了x个,构成C(x, 3)个大小为4个团。•找到最大的t,枚举a,b,c,d,计算e。#include...原创 2018-08-09 21:09:25 · 285 阅读 · 0 评论 -
codeforces1013D(模拟,并查集)
题目:给你n*m的区域,q个格子放上了标记,如上图放了(r1,c1),(r1,c2),(r2,c1)后(r2,c2)就可以自动出来标记,问让最后所有的格子都被标记还需要的最小标记数。思路:假设没有一个格子放有标记。下图还需放n+m-1个标记,能把所有的格子标记完。此时是最优的然后把q个多放的格子放进去等效替换就可以啦,并查集去重。#include <bits/stdc++....原创 2018-07-31 14:57:08 · 837 阅读 · 0 评论 -
HDU 6321Problem C. Dynamic Graph Matching(模拟,状压)
题目:给你n个点,m个操作,每种操作要么加一条边要么减一条边,紧接着询问当前选出1条无公共端点的边,2条无公共端点的边,3条.....n/2条无公共端点边时分别有多少种不同的选择。(n<=10) 思路:真是刺激,比赛时想到了状压没想到怎么搞,然后疯狂算暴力的复杂度。感觉还可以,应该不会T。交了一发,疯狂刷新后结果TLE。然后发现还可以优化下常数,直接把下面的代码写到init里面预处理出4...原创 2018-07-30 20:17:59 · 211 阅读 · 0 评论 -
牛客网多校2 car(思维模拟)
看到图就明白怎么放了。。。学妹好厉害呀#include <bits/stdc++.h> using namespace std;typedef long long ll;const int maxn=1e5+10;int n,m,r[maxn],c[maxn];int main(){ while(~scanf("%d%d",&n,&m))...原创 2018-07-22 13:25:39 · 224 阅读 · 0 评论 -
ZOJ-3627 Treasure Hunt II (模拟,贪心)
题目很简单却很容易就出错,比如说段错误,wa啊无数次,,一定要注意边界题意:直线上有n个城市, 第i个城市和i+1个城市是相邻的.每个城市都有vi个金币.Alice和Bob站在城市p, 他们每天可以选择走向一个相邻的城市, 也可以选择不走. 他们是单独行动的。他们经过一个城市就可以获得相应的金币(不能重复获得)。作为一个队伍, 他们的最远距离不能操作M, 问T天内, 他们最多一共能拿多少金币?题解...原创 2018-07-15 19:25:03 · 208 阅读 · 0 评论 -
HDU - 6282 String Transformation(模拟)
题意:给出两个字符串S和T,只由a,b,c三种字符组成(不为空串,长度不一定相同,不一定包含所有字符)。对字符串S可以进行几种操作:在任意位置添加/删除字符串aa,bb,abab。问字符串S是否能通过以上几种操作变成T,输出Yes/No。根据题目条件可以得出 1: aa,bb,abab可以直接删除;2: ab可以变成ba3: aba可以变成b,bab可以变成a由于我比较菜模拟写的很繁琐,贴个代码时...原创 2018-07-14 21:18:30 · 290 阅读 · 0 评论 -
codeforces 1028E Restore Array(构造)
题目:给一个长度为n的数组a,ai=b[(i+1)%n]%b[i] ,判断存不存在满足条件的b数组,有的话输出任意一个符合条件的b。思路:一开始发现,找到最大的数a[k]而且a[k]前一个比它小,让b[k]=a[k]然后往前不断加a[i]并得到b[i],可以得到符合答案的b。事实证明wa了。。。把一开始找到的a[k],给它乘以一个特别大的系数就好了。全是0的时候要特殊判断。#inclu...原创 2018-08-28 20:38:56 · 340 阅读 · 0 评论