模拟
文章平均质量分 53
HT008_123
家人们点点关注叭
展开
-
天天和不可描述
QAQ 直接就这么翻肯定是不行的,换一种想法:有括号就是把括号里的字符串倒着输出,如果在括号里又遇到了括号就继续倒着输出. 预处理出括号去的位置#include <cstdio>#include <iostream>#include <cstring> #include <string>using namespace std;const int maxm=510000;int lf[原创 2017-10-03 15:21:02 · 240 阅读 · 0 评论 -
选择客栈
QAQ 我的SB做法 把每个颜色的位置记下来,枚举一个开头颜色位置,看看后面最少到哪里就可以符合要求了,查询用线段树。(位置只会往后)#include <cstdio>#include <iostream>#include <ctime>using namespace std;const int maxm=200100;int p[maxm];int st[maxm*4];int原创 2017-10-19 17:33:16 · 374 阅读 · 0 评论 -
洛谷10月月赛R2·浴谷八连测R3 T1
QAQ 我爱珂朵莉。 sum[i]表示1-i的东西搬到1的总花费 dis[i]表示1-i距离1的总距离 q[i]表示1-i东西的数量 当x < l的时候 sum[r]-sum[l-1]为l-r东西搬到1的花费 减去dis[x] *(q[r]-q[l-1])就是答案。 当x>r的时候 dis[x]*(q[r]-q[l-1])-(sum[r]-sum[l-1]) 当x在l和r之间时,原创 2017-10-27 15:20:44 · 321 阅读 · 0 评论 -
排列
QAQ 暴力,固定左端点,暴力统计右侧区间的最大值与最小值 优化,直接算出当位置右侧最大值和最小值的位置,动态统计 找右侧最大值和最小值方法:单调栈预处理即可#include <cstdio>#include <iostream>#include <cstring>using namespace std;const int maxm=110000;int rmax[maxm],rmi原创 2017-10-04 12:51:06 · 201 阅读 · 0 评论 -
TWO
【题目描述】给你两个日期,问这两个日期差了多少毫秒。【输入格式】两行,每行一个日期,日期格式保证为“YYYY-MM-DD hh:mm:ss”这种形式。第二个日期时间一定比第一个日期时间要大两个日期的年份一定都是21世纪的年份。【输出格式】一行一个整数代表毫秒数。【样例输入1】2000-01-01 00:00:002000-01-01 00:00:01【样例输出1】1000【样例原创 2017-10-06 06:39:37 · 210 阅读 · 0 评论 -
haha
【问题描述】 栈是一种强大的数据结构,它的一种特殊功能是对数组进行排序。例如,借助一个栈,依次将数组1,3,2按顺序入栈或出栈,可对其从大到小排序: 1入栈;3入栈;3出栈;2入栈;2出栈;1出栈。 在上面这个例子中,出栈序列是3,2,1,因此实现了对数组的排序。 遗憾的是,有些时候,仅仅借助一个栈,不能实现对数组的完全排序。例如给定数组2,1,3,借助一个栈,能获得的字典序最大的出栈序列是原创 2017-10-06 16:13:37 · 194 阅读 · 0 评论 -
飞翔的小鸟
QAQ 但是转移时需要先转移上升然后下落。 还有就是管内也要转移(否则跳k步可以跳上去的不能上去)#include <cstdio>#include <iostream>#include <cstring>using namespace std;struct node{ int x,y;}a[11000];struct Node{ int s,x; b原创 2017-10-20 13:49:53 · 372 阅读 · 0 评论 -
Massacre at Béziers+赤の夜
等差数列求和,算出多少个整周期。 二分或解方程#include <cstdio>#include <iostream>#include <cmath>#define ll unsigned long longusing namespace std;ll n,t;bool check(ll a,ll d1,ll mid){ ll c=2; ll ans=a*mid+((原创 2017-11-08 14:29:03 · 350 阅读 · 0 评论 -
日记+洗澡
洗澡的地方,有一段括号序列,将一个括号修改一次需要1的代价(将左括 号变成右括号或者相反),求最小代价使得括号序列合法。 【输入格式】 一行一个括号序列。 【输出格式】 一行一个整数代表答案。 【样例输入】 ())( 【样例输出】 2 【数据范围与规定】 50%的数据,括号序列长度不超过100。 对于100%的数据,括号序列长度不超过10 5 且一定为偶数,只包含小括 号右原创 2017-10-31 17:30:34 · 895 阅读 · 0 评论 -
集合
集合 【问题描述】 给定一个可重集合,一开始只有一个元素 0 。然后你可以操作若干轮,每一 轮,你需要对于集合中的每个元素 x 进行如下三种操作之一: 1 、将 x 变为 1 + x 。 2 、将 x 分裂为两个非负整数 z y,,且满足 x=y+z。 3 、什么都不做。 每一轮,集合中的每个元素都必须进行上面三个操作之一。 对于一个最终的集合,你的任务是判断至少进行了多少轮。 【原创 2017-11-01 13:54:15 · 511 阅读 · 0 评论 -
三向城+香兰子
三向城 题目描述 三向城是一个巨大的城市,之所以叫这个名字,是因为城市中遍布着数不尽的三岔路口。(来自取名力为0的出题人) 具体来说,城中有无穷多个路口,每个路口有唯一的一个正整数标号。除了1号路口外,每个路口都连出正好3条道路通向另外3个路口:编号为x(x>1)的路口连出3条道路通向编号为x*2,x*2+1和x/2(向下取整)的3个路口。1号路口只连出两条道路,分别连向2号和3号路口。 所原创 2017-11-04 18:44:15 · 442 阅读 · 0 评论 -
LG R7
T1 BFS暴力模拟#include <cstdio>#include <iostream>#include <queue>#include <cstring>#include <ctime>using namespace std;const int maxm=5100;int head[maxm],to[2*maxm],net[2*maxm];int cnt;struct nod原创 2017-11-06 16:25:16 · 273 阅读 · 0 评论 -
吃午饭
按照题意算出 ti,j 维护长度是 i-len—-i的标记数组,然后找第一个没有标记的就行啦#include <cstdio>#include <iostream>#define ll long longusing namespace std;ll mile[210000];bool ts[110000];int main(){ //freopen("a.in","r",st原创 2017-09-30 09:30:01 · 230 阅读 · 0 评论 -
柜
思路:正方向跑一遍,如果直接能到终点输出0 如果不行,反方向从终点向起点跑,在与第一条路径的交点处放镜子即可 如果没有交点,输出-1 但是模拟跑的过程太慢,否则就满分了2333(满分不会,我是咸鱼!)#include <cstdio>#include <iostream>#include <cstring>using namespace std;int map[7001][7001];原创 2017-09-29 16:51:07 · 237 阅读 · 0 评论 -
希望(kami)
网页浏览器者有后退与前进按钮,一种实现这两个功能的方式是用两个栈, “前进栈”、“后退栈”。 这里你需要实现以下几个功能: BACK: 如果“后退栈”为空则忽略此命令。否则将当前页面压入“前进栈”, 从“后退栈”中取出栈顶页面,并设置为当前页面。 FORWARD: 如果“前进栈”为空则忽略此命令。否则将当前页面压入“后 退栈”,从“前进栈”中取出栈顶页面,并设置为当前页面。 VI原创 2017-09-29 16:36:35 · 302 阅读 · 0 评论 -
P3819 松江1843路
QAQ O(N)暴力算,记录前缀和与前缀个数即可#include <cstdio>#include <iostream>using namespace std;typedef unsigned long long ull;ull num[9999],sum[9999];struct node{ ull dx,ri;}a[99999];int main(){ ull原创 2017-08-16 11:19:55 · 284 阅读 · 0 评论 -
计算器弹琴
QAQ 计算器版极乐净土 giligili恩,这道题目前面的都没有用 -根本不用特殊处理,直接当普通字符处理就行了。。。。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cstring>#include<string> #include<cmath>using names原创 2017-08-09 19:45:17 · 1944 阅读 · 0 评论 -
好朋友
传送门 一个比较水的题 根据定义暴力枚举即可AC#include <cstdio>#include <iostream>#include <map>#include <cmath>using namespace std;int cf(int x){ int tot=0; for(int i=1;i<=sqrt((double)(x+0.5));i++) if(原创 2017-08-09 21:24:10 · 226 阅读 · 0 评论 -
进制转化
QAQ 先取出末尾的0,对于最后一个不是0的要特殊处理一下#include <iostream>#include <cstdio>#include <cstring>using namespace std;char s[99999];int main(){ int n; scanf("%d %s",&n,s); int len=strlen(s)-1;原创 2017-08-10 19:37:20 · 188 阅读 · 0 评论 -
P2629 好消息,坏消息
QAQ 解法1: 前缀和最小值+后缀和+后缀的前缀和最小值(是不是特别绕) qmin[i]表示1-i的前缀和最小值,hz[i]表示i-n的和 hmin[i]表示i-n的前缀和最小值,注意,前缀是从i开始 前两个数组都好处理,但是最后一个咋处理呢 hmin[i]=min(a[i],a[i]+hmin[i]) 因为hmin[i]中一定包含a[i],而hmin[i]无外乎两种情况,一个是单独原创 2017-08-11 10:38:52 · 466 阅读 · 0 评论 -
水题生成器
QAQ#include <cstdio>#include <iostream>#include <cstring>#include <cmath>#define ll long longusing namespace std;int main(){ ll n; ll ans=1,m; scanf("%lld%lld",&n,&m); ll t=m;原创 2017-08-19 08:59:59 · 278 阅读 · 0 评论 -
循环移动
很简单,直接暴力模拟就行了,k对len取个模更快#include <cstdio> #include <iostream>using namespace std;char s1[19999];char s2[19999];int main(){ freopen("cyclic.in","r",stdin); freopen("cyclic.out","w",stdout)原创 2017-07-28 10:44:46 · 634 阅读 · 0 评论 -
阅读计划
这道题目是一道贪心题,我们分析一下,如果一本书第二次出现,或者是第三次出现~~~~这本书需要看的花费是固定的,就是距离它上次看时中间看的书,所以说,我们对于序列的安排所决定的初始状态对他们没有影响,花费是固定的,于是我们只需要考虑如何让看一本书第一次时花费最小,很明显,我们让先读的书安排在上面代价肯定最小,因为即使把这本书安排在第二位置,读完之后它依然会在头顶上,对后面没有贡献,但是代价多花了,于是原创 2017-07-28 10:53:36 · 274 阅读 · 0 评论 -
传球接力
很明显我们需要找出图中的环(肯定有环) 如上图,我们找的环为1->4->3->2->1 环的总长度确定了,但是起点并没有确定,我们有两种选择 一个是6->2->1->4->3(总长度16) 另一个为5->4->3->2->1(总长度25) 很明显是第二种长,我们该如何得出答案 令sum为环的长度,但是环的长度中有一条是加入不进去的,那就是起点切入环的点指向这个点的环上边 我们令fi原创 2017-08-20 14:52:24 · 602 阅读 · 0 评论 -
摄像头
QAQ 看一下题面,发现只有没有摄像头监视的摄像头才可以砸掉,妥妥的拓扑排序 每次去找入度为0的摄像头,再进行删除它的邻接点的入度操作,直到没有入度为0的摄像头或者是全部砸掉 注意一个小坑:那就是其实摄像头的编号并不是1-n(虽然样例是) 那么我们记录最大的编号,从1-Max扫,使用F数组标记摄像头的位置,即可AC。#include <cstdio>#include <iostream>原创 2017-07-27 16:07:55 · 321 阅读 · 0 评论 -
他
【问题描述】 一张长度为的纸带,我们可以从左至右编号为(纸带最左端标号为)。现在有次操作,每次将纸带沿着某个位置进行折叠,问所有操作之后纸带的长度是多少。 【输入格式】 第一行两个数字如题意所述。 接下来一行个整数代表每次折叠的位置。 【输出格式】 一行一个整数代表答案。 【样例输入】 5 2 3 5 【样例输出】 2 【样例解释】 树上有只鸟。 【数据规模与约定】 0原创 2017-10-06 19:29:38 · 271 阅读 · 0 评论 -
Program
看程序写结果(program) Time Limit:1000ms Memory Limit:64MB题目描述 LYK最近在准备NOIP2017的初赛,它最不擅长的就是看程序写结果了,因此它拼命地在练习。 这次它拿到这样的一个程序: Pascal: readln(n); for i:=1 to n do read(a[i]); for i:=1 to n do for j:=1原创 2017-10-07 10:16:41 · 263 阅读 · 0 评论 -
[NOI2011]道路修建
树上计算size模拟算答案。 Luogu#include #include #include #define ll long longusing namespace std;const int maxm=1100000;int head[maxm],net[maxm*2],to[maxm*2],cnt;ll ans=0,cost[maxm*2],n;inline void a原创 2018-01-24 10:06:20 · 359 阅读 · 0 评论