模拟
Dilly__dally
这个作者很懒,什么都没留下…
展开
-
2018杭电多校第一场B(hdu6299)
题意给你n个包含’(‘与’)’的字符串,可以将这些字符串任意排序,求所有排序中,子序列是正规括号序列的最大长度。题解参考大佬https://blog.csdn.net/ACTerminate/article/details/81171799首先我们对所有的字符串找到通过stack找到所有的串内正规括号子序列,之后剩下的串只有三种可能: 1. 只包含’(’ 2. 先是一串’)’然...原创 2018-07-31 20:27:01 · 151 阅读 · 0 评论 -
Codeforces Round #515 (Div. 3) D(模拟)
题意:有m个箱子,每个箱子容量为k,问你最多能装多少个物品,你只能依次舍弃前面的,后面的必须全部装完。思路:题目意思是装过东西的箱子如果你又拿了一个箱子,那么以前的箱子就装不了了,即使还能装。所以倒着遍历物品,模拟一下就行了。#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3f#define ...原创 2018-10-15 20:48:10 · 150 阅读 · 0 评论 -
Codeforces Round #515 (Div. 3) C (模拟)
题意:三种操作:L id ,将编号为id的书放在最左边;R id,将编号为id的书放在最右边;?id,查询编号为id的书左右两边哪一边的数量最小,输出最小值。思路:用l和r表示下一个左或右的位置,然后模拟就行了。#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3f#defi...原创 2018-10-15 20:34:53 · 190 阅读 · 0 评论 -
Codeforces Round #515 (Div. 3) B(模拟)
题意:在数列中值为1的位置有1个加热器,它能覆盖它的左边第 r-1 位置到它的右边 r-1 的位置,问最少多少个加热器能覆盖整个区间。思路:模拟这个过程,首先now=1,然后遍历所有位置,找到最远的满足now这个位置能加热的点,再另now=i+r-1+1,之所以要+1,是因为,i+r-1这个位置已经包含在刚才那个区间了。#include<bits/stdc++.h>usin...原创 2018-10-15 20:25:18 · 173 阅读 · 0 评论 -
ZOJ 4056 Press the Button(模拟)
题意: BaoBao和DreamGrid玩游戏,轮流按灯的按钮,轮到BaoBao时按下b次,轮到DreamGrid时按下d次,初始时灯是灭的,每次按下按钮等都会持续亮v+0.5秒,如果按之前灯时灭的,则按下后灯会打开,如果灯是亮的,则按下后会从之灯的照明时间为v+0.5,且counter增加1,如果在v+0.5秒每没有再一次按下按钮,灯会熄灭。 给出a,b,c,d,v,t五个数,t表示游...原创 2018-09-19 11:35:48 · 325 阅读 · 0 评论 -
POJ 3087(模拟)
题意:给定两个长度为len的字符串s1和s2, 接着给出一个长度为len*2的字符串s12。将字符串s1和s2通过一定的变换变成s12,找到变换次数变换规则如下:假设s1=12345,s2=67890变换后的序列 s=6172839405如果s和s12完全相等那么输出变换次数如果不完全相等,s的前半部分作为s1,后半部分作为s2,重复上述过程。思路:按题意模拟就行了...原创 2018-09-12 07:04:14 · 145 阅读 · 0 评论 -
GCPC 2013 B(模拟+贪心+时间转换)
题意:给出宾馆房间的入住时间离开时间,和打扫时间,在一间房间入住之前应该打扫一次。求最少需要多少个房间。思路:首先数据量是2013年到2016年,把时间转换成分钟(以2013年1月1日为起点),结束时间加上打扫时间,在一个数组中对入住对应的时间++表示这个点住了,对离开时间--表示这个点离开了,可以看出答案就是时间从0到maxn的入住和离开的人数的代数和的最大值。#include<...原创 2018-09-05 21:30:35 · 152 阅读 · 0 评论 -
HDU 5933(模拟)
题意:有n个数,对于这n个数,每次只能执行下面两种操作其中的一种:一:将相邻的两个数相加合并成一个数,二:将一个数分成相邻的两个数,这两个数的和仍然等于之前的数请问至少需要多少次操作才能将这n个数变成k个相等的数。思路:顺着模拟,处理f>kk时比较巧妙。#include<bits/stdc++.h>using namespace std;#define...原创 2018-08-25 10:49:40 · 254 阅读 · 0 评论 -
2017-2018 CTU Open Contest B.Pond Cascade(二分+模拟)
比赛的时候没看这个题,其实很简单,两次二分即可求出答案。#include<bits/stdc++.h>using namespace std;#define inf 0x3f3f3f3f#define ll long longconst int maxn=100005;const double eps=1e-8;const double PI = acos(-1.0)...原创 2018-08-21 22:54:35 · 336 阅读 · 0 评论 -
POJ 2719(模拟+进制转换)
思路:把数按个、十、百……拆开,如果大于3,就减1,再按9进制加回去。#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<vector>#include<stack&原创 2018-08-27 18:14:04 · 232 阅读 · 0 评论 -
HDU 6438 Buy and Resell (贪心+优先队列)
题意:给定n天,每天有个价格,可以买一个物品,可以把手中的物品卖掉,求最大利润和最少买卖次数。思路:最大利润按这个https://blog.csdn.net/Dilly__dally/article/details/82055866思路求,先看第二个样例9 5 9 10 5 ,按队列模拟利润是 9-5 + 10-9 ,可以看出9是一个中间物,不用买9,所以只需在原来思路的基础上加上对入队和出队...原创 2018-08-26 12:06:38 · 162 阅读 · 0 评论 -
Codeforces Round #515 (Div. 3) E(模拟+前缀和)
题意:a和b是两个01字符串,现要计算a&b+a&b>>1+a&b>>2+……(直到b=0)思路: 因为a和b的长度不确定,所以给短的那个在前面补上0,因为b每一次往右移,所以可以计算b的每一位上的贡献,这个贡献就是这一位及前面一共有多少1,为什么呢?考虑a=1001和b=10101,那么a的第四位一共要&三次b的1,值为1,所以答案就是...原创 2018-10-15 21:02:10 · 196 阅读 · 0 评论