模拟实现
河渔船
成长的小垃圾
展开
-
最多区间
原题 请允许我起个很土的名字。 题目大意:有多个活动,每个活动都有开始和结束的时间,在同一时刻不能同时参见多个活动,问最多能参加多少个活动? 对于100%的数据,n≤1000000,0≤ai<bi≤1000000。贪心。 按照r从小到大排序,肯定优先选择r小的,这样能给后面留出更多的空间。#include<iostream>#include<cstdio>#include<cstring原创 2017-10-26 16:59:37 · 284 阅读 · 0 评论 -
死亡
【问题描述】 现在有个位置可以打sif,有个人在排队等着打sif。现在告诉你前个人每个人需要多长的时间打sif,问你第个人什么时候才能打sif。(前个人必须按照顺序来) 【输入格式】 第一行两个整数如上所述。 接下来行每行一个整数代表每个人所需要用的时间。 【输出格式】 一行一个整数表示答案。 【样例输入】 3 2 1 1 1 【样例输出】 1 【样例解释】 山里有座庙原创 2017-10-05 21:51:03 · 175 阅读 · 0 评论 -
回形遍历 calc
传送70分,N^2的时间复杂度,模拟呗。 只是变量好繁琐,以及这个题本身烦人的坐标倒置。100分,也是模拟,不过要在70分的基础上加上优化,70分每次只走一个格,而100分时优化到每次走一排(或者一列)。O(4*n) 实现: 观察下面的图: 发现,除了第一次,其他时候dx和dy都要-170分#include<iostream>#include<cstdio>#include<stri原创 2017-10-01 19:36:44 · 233 阅读 · 0 评论 -
NOIP 2012 开车旅行
评测传送n^2预处理出最大值次大值。 模拟即可。 可以过掉70分。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>#include<cmath>#define LL long long#define DO doubleconst int N=100009;c原创 2017-10-19 15:26:01 · 241 阅读 · 0 评论 -
NOIP 2012 Vigenere 密码
评测传送模拟呗。 我是打表过的。 貌似很无脑。 但是T1我就随便浪了。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>#include<queue>#define LL long longusing namespace std;char K[109],M[1原创 2017-10-19 14:07:10 · 360 阅读 · 0 评论 -
天天和不可描述
传送 这道题蒟蒻调试了好久。一开始想的思路是从左往右,输出,一直到碰到左括号,然后在当前左括号的右括号前一位继续倒着输出,直到再次遇见右括号,然后从左边输出,同时把括号外的按照原来的方向继续输出……思路好对啊QAQ…… 然而实现的时候,出来太多的问题, 第一次炸掉,是因为每个小区间缩小时,会r#include<iostream>#include<cstring>#include<strin原创 2017-10-03 10:34:03 · 307 阅读 · 1 评论 -
天天寄快递
传送这是一道水模拟嘛(蒟蒻终于会做啦)把m天的账单,按照能提升分数的大小降序排序。 然后扫两遍,第一遍先将提分小于K的提分,来判断是否能全部满足; 第二遍来求最大提分总和。#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<cmath>#include<algorithm>#defin原创 2017-10-01 20:54:22 · 236 阅读 · 0 评论 -
摆摊
传送 这道题的正解好像是(超级厉害的)主席树!(蒟蒻不会啦)70分的暴力模拟#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<cmath>#define M 200009using namespace std;int n,m,Q;int a[M];bool f[M];int原创 2017-10-01 20:10:56 · 365 阅读 · 0 评论 -
NOIP 2013 花匠
评测传送这个题是DP? 贪心可以做的。 将相邻的相同高度的合并,搞一下波峰波谷以及ans+1-1的就可以了#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=100009;int n,a[N],ans;原创 2017-10-18 14:07:44 · 237 阅读 · 0 评论 -
NOIP 2013 积木大赛
评测传送其实这道题比起其他年份的T1还是算难的。 花费时间:40min+我的做法是: 用一个栈,来存某一段。 看图理解 我们先将第一段橙色的入栈,因为这是第一段,所以次数是st[top]; 然后清空栈,将绿色的入栈,需要的次数是st[top]-st[1]=2;(因为是递增的,所以已经清空的上一段最后一个一定比当前这一段的第一个高,所以在之前就可以将这一段的这个高度给覆盖掉,所以需要的次数是原创 2017-10-18 13:57:55 · 479 阅读 · 0 评论 -
天天去哪吃
根据题意模拟即可,一开始猜想着会超时。(然而并没有超时)。 大概数据随机性比较强,水了一点。#include<iostream>#include<cstdio>#include<cstring>#include<string>#define LL long long#define M 100009using namespace std;LL a[2*M],t[2*M],q[4*M],原创 2017-09-30 09:25:12 · 310 阅读 · 0 评论 -
希望
【题目描述】 网页浏览器者有后退与前进按钮,一种实现这两个功能的方式是用两个栈, “前进栈”、“后退栈”。 这里你需要实现以下几个功能: BACK: 如果“后退栈”为空则忽略此命令。 否则将当前两面压入“前进栈”, 从“后退栈”中取出栈顶页面,并设置为当前页面。 FORWARD: 如果“前进栈”为空则忽略此命令。否则将当前两面压入“后 退栈”,从“前进栈”中取出栈顶页面,并设置为当前页原创 2017-09-29 17:57:18 · 224 阅读 · 0 评论 -
柜 safe
问题描述 zhx 有一个高级的保险柜,是一个使用激光穿过一个有几面镜子的矩形网格 的光学封闭机械。 当激光被激活后,从矩形网格的最上方一行的左侧水平射入。每当激光束击 中一面镜子,/和\二者之一,就会以 45 度角被反射。如果激光束从矩形网格底 部一行的右侧水平射出(见上图左) ,那么安全检测成功,保险箱打开。否则保 险箱发出警报。 保险箱有一面镜子丢失来防止激光束成功穿过网格(见原创 2017-09-29 17:18:07 · 237 阅读 · 0 评论 -
LYK快跑!(run)
Time Limit:5000ms Memory Limit:64MB题目描述 LYK陷进了一个迷宫!这个迷宫是网格图形状的。LYK一开始在(1,1)位置,出口在(n,m)。而且这个迷宫里有很多怪兽,若第a行第b列有一个怪兽,且此时LYK处于第c行d列,此时这个怪兽对它的威胁程度为|a-c|+|b-d|。 LYK想找到一条路径,使得它能从(1,1)到达(n,m),且在途中对它威胁程度最小的怪原创 2017-10-07 16:47:46 · 314 阅读 · 0 评论 -
凝视 eyesight
【问题描述】 背包是个好东西,希望我也有。 给你一个二维的背包,它的体积是。现在你有一些大小为和的物品,每个物品有自己的价值。你希望往背包里面装一些物品,使得它们的价值和最大,问最大的价值和是多少。 【输入格式】 第一行一个整数代表该测试点的数据组数。 对于每组数据,第一行有四个整数,其中分别代表大小为和大小为的物品个数。 接下来一行有个数代表每个物品的价值。 接下来一行有个数代表每个原创 2017-10-06 08:12:14 · 193 阅读 · 0 评论 -
最大栈
【问题描述】 栈是一种强大的数据结构,它的一种特殊功能是对数组进行排序。例如,借助一个栈,依次将数组1,3,2按顺序入栈或出栈,可对其从大到小排序: 1入栈;3入栈;3出栈;2入栈;2出栈;1出栈。 在上面这个例子中,出栈序列是3,2,1,因此实现了对数组的排序。 遗憾的是,有些时候,仅仅借助一个栈,不能实现对数组的完全排序。例如给定数组2,1,3,借助一个栈,能获得的字典序最大的出栈序列是原创 2017-10-06 14:23:21 · 1238 阅读 · 0 评论 -
NOIP 模拟题 国际跳棋
B 国际跳棋 文件名 输入文件 输出文件 时间限制 空间限制 chess.cpp/c/pas chess.in chess.out 1s 512MB题目描述 国际跳棋是一种古老的棋类游戏,远在古埃及法老时期就已存在,现代国际跳 棋是在 12 世纪定型的。国际跳棋是由各国的民族跳棋演变而来,其历史源远流长。 简化版(与标准国际跳棋略有差别)国际跳棋规则: • 国际跳棋的棋盘由 10 × 1原创 2017-10-25 16:50:52 · 1617 阅读 · 0 评论 -
NOIP 模拟题 消失的数字
A 消失的数字 文件名 输入文件 输出文件 时间限制 空间限制 del.cpp/c/pas del.in del.out 1s 512MB 题目描述 现在,我的手上有 n 个数字,分别是 a 1 ,a 2 ,a 3 ,…,a n 。 我现在需要删除其中的 k 个数字。当然我不希望随随便便删除,我希望删除 k 个数字之后,剩下的 n − k 个数中有最多的不同的数。 输入格式 第一行两原创 2017-10-25 16:45:00 · 351 阅读 · 0 评论 -
刷题#R5
星空 【问题描述】 你是能看到第一题的 friends 呢。 ——hja 点点星空是一张n× m的棋盘,左下角有颗星星。尤和千每次可以将星星向 右边、右上、上边移动一格。尤和千轮流移动,尤先手,问尤是否必胜? 【输入格式】 多组数据,每行两个整数n,m,当 n=m=0 时数据停止。 【输出格式】 对于每组数据,如果尤必胜输出“Yuri” ,否则输出“Chito” 。 【样例输入】原创 2017-11-02 14:58:30 · 372 阅读 · 0 评论 -
刷题#R7
集合集合 【问题描述】 给定一个可重集合,一开始只有一个元素 0 。然后你可以操作若干轮,每一 轮,你需要对于集合中的每个元素 x 进行如下三种操作之一: 1 、将 x 变为 1 + x 。 2 、将 x 分裂为两个非负整数 z y, ,且满足 z y x + = 。 3 、什么都不做。 每一轮,集合中的每个元素都必须进行上面三个操作之一。 对于一个最终的集合,你的任务是判断至少进行原创 2017-11-01 15:59:22 · 912 阅读 · 0 评论 -
NOIP 模拟题 奇怪的字符串
题目描述 有一天,小 A 的女票为了让小 A 证明他对她的忠诚,要求小 A 生成一个长度 为 n 的、全由小写英文字母构成的字符串,只能使用 k 种字母。要求满足: • 字符串中相邻的两个字母不能相同。 • 必须出现恰好 k 种不同的字母。 这样的合法字符串可能有很多,小 A 的女票要求小 A 输出字典序最小的那个。 小 A 太笨了,但是小 A 又不希望丢掉女票,希望你帮帮他。输入格式原创 2017-10-24 14:01:28 · 547 阅读 · 0 评论 -
刷题#R4
题目链接 T1 模拟即可,但是要仔细一点。 T2 素数筛,前缀和,简单二分就可以过。 T3 30分floyed暴力。 T1#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=100009;char s[N];int n,sl[N原创 2017-10-31 13:58:20 · 417 阅读 · 0 评论 -
NOIP模拟题 订餐
题目描述 这个周末,Joe 一如既往的拿出了外卖的点餐单。菜单上从上到下列着 N 个菜, 每个菜 Joe 会列出一个美味值。Joe 这次希望从菜单上连续地点 K 个菜,并且美 味值之和最大。 但在计算美味值之和时,Joe 有自己的一套计算方法:由于他会按照顺序享受这 K 个菜,并且越吃越后面的菜他就越享受,所以对于他吃的第 i 个菜,设它的美 味值为 D,美味值之和就会加上 D*i。例如原创 2017-10-23 11:14:40 · 552 阅读 · 0 评论 -
NOIP 2015 疫情控制
评测传送二分答案+贪心。 越往上越优,所以在枚举的范围内,能往上就往上。 细节处理很重要。 我的代码有一处是待优化的,调了一下午,身心俱疲,不想再写了。 就这样吧 95分。#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<vector>#include<algorithm>#def原创 2017-10-23 11:31:46 · 366 阅读 · 0 评论 -
NOIP 模拟题 秘密信息
题目描述 Irene 想用以下的方法加密一条信息(这是她从密码学书上自学来的) : 假定这条信息可以用一个字符串 S 表示,其中 S=BCAAD.(其中‘.’代表字符串结 尾) 。Irene 首先把 S 的所有循环同构串写下来(所谓循环同构即是不断地把字符 串开头的字符移动到尾端) : BCAAD. CAAD.B AAD.BC AD.BCA D.BCAA .BCAAD 接下来她原创 2017-10-23 11:21:51 · 513 阅读 · 0 评论 -
luogu 模拟题 青蛙叫
等差数列。 因为直接算的话可能会有较大的精度丢失(个人认为), 所以用到二分,二分有多少项。 时间复杂度O(nlogT)#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#define LL long longusing namespace std;const原创 2017-11-08 11:36:50 · 304 阅读 · 0 评论 -
洛谷 NOIP 模拟 DAY1
T1题目链接 每次新产生的兔子一定是前面的兔子生的。 先预处理出菲波那切数列,然后用a-f[x]就是a的父亲。(f[x]是小于a的最大的)#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define LL long longusing namespace std;const int N=30原创 2017-11-07 17:07:44 · 231 阅读 · 0 评论 -
洛谷10月月赛R2·浴谷八连测R3 -Chtholly-
T1 浮游大陆的68号岛 T2 Chtholly Nota Seniorious T1 这个题还是比较简单的,毕竟是第一题。 首先,不要想复杂的数据结构,因为中间没有修改值,蒟蒻就是因为高大上的数据结构不精通,所以没有走弯路喽。用一个前缀和来记录储物点的物件数目; dis数组记录到1点的距离; cost数组记录前i个储物点的物品都搬到1点的花费。 接下来就是模拟了。 分为三种情况原创 2017-10-27 15:31:47 · 458 阅读 · 0 评论 -
洛谷10月月赛R2·浴谷八连测R4
Problem A. 逃避 (nigeru.c/cpp/pas) Input file: nigeru.in Output file: nigeru.out Time limit: 1 second Memory limit: 8 megabytes给定一篇只含有大小写字母,空格以及 ′ . ′ (不含引号)的长度为 L 的文章。文章被若干个 ′ . ′ 划分 成若干个句子,句子被若原创 2017-10-28 15:33:11 · 364 阅读 · 0 评论 -
NP
题意:求解N!%P 首先,如果n>=p,那么答案是0;所以80分到手。(暴力+特判)剩下的用 ∗∗分块打表∗∗**分块打表**我们把k*10^7,k∈Z 打出表(打到1000000007 也就100个数),然后对于输入的n,选一个起点直接用表里的数就可以了。 (这是正解,感觉好滑稽)#include<iostream>#include<cmath>#include<cstring>#in原创 2017-10-07 09:15:21 · 292 阅读 · 0 评论 -
时间差 two
计算时差,单位为ms一开始80分,是当年闰年天数加错#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define LL long longusing namespace std;int date1[10];int date2[10];char t1[20],t原创 2017-10-05 21:49:27 · 245 阅读 · 0 评论 -
折纸 he
【问题描述】一张长度为 的纸带,我们可以从左至右编号为0 − (纸带最左端标号为 0)。现在有 次操作,每次将纸带沿着某个位置进行折叠,问所有操作之后纸带 的长度是多少。【输入格式】第一行两个数字 , 如题意所述。 接下来一行 个整数代表每次折叠的位置。【输出格式】一行一个整数代表答案。【样例输入】5 23 5【样例输出】2【样例解释】树上有只鸟。【数据规模与约定】对于60%的数据N,M, ≤ 30原创 2017-10-06 19:28:35 · 369 阅读 · 0 评论 -
poj 1850 code
http://poj.org/problem?id=1850首先应该判断一下给出的字符串是否为升序,否则答案为0. 对于长度为L的一串,我们首先应该加上比它短的串的个数,然后再算它是长度为L的里面的第几个。 在算长度为len的串的个数的时候,因为都是升序的,特定的几个字符组成的串没有重复,所以我们可以 用组合数来算,个数为C(26,len)。 然后再算它是长度为L的串的第几个时,一位一位地算原创 2017-08-04 08:36:30 · 182 阅读 · 0 评论 -
P1134 阶乘问题
luogu 传送门这个题,用O(n)真的可以吗?大概是洛谷数据太弱了。#include<iostream>#include<algorithm>#include<cstdio>#include<cmath> #define LL long longusing namespace std;int n;LL ans=1;LL work(LL x){ while(!(x%10))原创 2017-08-11 08:46:57 · 340 阅读 · 0 评论 -
P1984 [SDOI2008]烧水问题
luogu 传送门这题好生厉害!如果n再小一点的话,这题是个贪心。我们把烧到过100度的水能进行热传导就进行热传导,一直向后进行。 这种做法是O(n^2)的,显然过不了。 然后注意到,这题肯定有规律嘛!推导:设沸腾温度为a 则第一杯温度为a,需要加热t1=a 第二杯可以中和的最高温度为a/2,需要加热t2=a/2 第三杯可以中和的最高温度为t3=(a/4+a)/2=5a/8,需要加热t原创 2017-08-10 20:52:34 · 371 阅读 · 0 评论 -
P1142 轰炸
luogu 传送门#include<iostream>#include<algorithm>#include<cstdio>#include<cmath> #include<queue>#include<vector>#include<cstring>#include<map>using namespace std;int n;int px[709],py[709];doubl原创 2017-08-10 19:21:11 · 427 阅读 · 0 评论 -
堡垒(fortress)
大暴力搜索题。 建图时,我的建图方法是偶数行偶数列为房子,奇数行奇数列是实墙(其实这些点是不再存在的)。 其他先赋值为没有墙,在根据输入来添墙。 看图更直观一点 样例图: 这样用bfs染色,就能做出前两问。 后两问,枚举每一面墙,如果墙两侧的房间不在一个大房间里,就可以合并,这样不断枚举更新答案。 还有难点是构图。#include<iostream>#include<cstrin原创 2017-07-26 14:43:20 · 294 阅读 · 0 评论 -
迷enc
len<=1000.songfen题吗? 需要注意的问题:如果确定了25个,那么第26个也能够确定了。#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<map>using namespace std;char s[1009],m[1009],a[1009];//密文,明文,解密 in原创 2017-08-17 20:26:27 · 166 阅读 · 0 评论 -
小小粉丝度度熊
HDU 传送门 开始肯定是先将区间按照 l 然后 r 升序排序。 我的做法:再合并一下区间(能合并的就合并)。 我一开始想了一种可能会超时的做法,我枚举x区间,计算从第x个区间后面的间隙开始补签,一直更新最大值,貌似真的会超时。然后我又想了用前缀和来优化一下,应该会过的。然后我获悉了一种使用队列的方法,可以做到O(n)。 我们在后面插入下一个区间时: 如果补签数m>=空隙,那么就可以入队,原创 2017-08-17 18:01:18 · 226 阅读 · 0 评论 -
P2614 计算机弹琴
https://www.luogu.org/problem/show?pid=2614 这是一道模拟题,就是细节有点多。 首先,括号里没有 - ,所以是 - 时,直接当成音符处理,又因为没有超过4个节拍的音符,所以遇到‘.’,判断前面是不是 - ,与普通字符分开处理就可以了。#include<iostream>#include<cstdio>#include<cstring>#includ原创 2017-08-09 20:29:50 · 396 阅读 · 0 评论