[NOIP2017]时间复杂度(模拟)】的更多相关文章

原本只是想看下多久能码完时间复杂度 然后在30min内就码完了,然后一A了???? 首先,这题完全可以离线做 我们先把所有的操作读完,判断合不合法之后,再去判断和标准答案的关系 具体而言 把所有的操作读完之后 对于$F$操作,我们存下这个操作对应的$E$操作,循环范围$[L, R]$以及循环变量 对于$E$操作,我们存下这个操作对应的循环变量 我们记$F$操作对应的$E$操作为$match[i]$ 我们可以从左往右对于每一个$E$操作暴力寻找其对应的$F$操作 然后判断一下合不合法,十分好写 之…
sscanf读入数字,getline(cin,string)读一整行,其余暴力模拟即可. #include<cstdio> #include<string> #include<cstring> #include<iostream> #include<algorithm> #define rep(i,l,r) for (int i=(l); i<=(r); i++) typedef long long ll; using namespace…
题目链接 Solution 用栈进行模拟. 记录一个 \(map\) 来看循环变量有没有用过. 对于每一次入栈都加信息. 出栈直接将 \(top\) 减一下. 反正一堆乱七八糟的东西瞎搞... 注意条件如果循环内均为常数,算作 \(O(1)\). Code #include<bits/stdc++.h> using namespace std; const int inf=0x3f3f3f3f; map<char,bool>v; int sta[108],top,sum[108];…
恶心的模拟题,考场上犯了一堆错误,多组数据清空没清完.数组开小...民间都是50分,结果CCF90.. 考完后随便改改就过了,还好只少了10分,如果真的是50,我估计会疯掉. 因为考场的时候没写好,所以最终的代码也很难看. #include<bits/stdc++.h> using namespace std; ],p[],fnum,stack_num,sck[],sck_num; ],ch[],res[]; inline void init() { memset(p,,sizeof(p));…
[Luogu 3952] NOIP2017 时间复杂度 一年的时间说长不长,说短,也不短. 一年之内无数次觉得难得可怕的题目,原来也就模拟这么回事儿. #include <cstdio> #include <iostream> #include <set> #include <stack> #include <string> int T; struct Layer { std::string name; int state; Layer(std:…
再写一道大模拟题. 由于是限时写的,相当于考场代码,乱的一批. 题目链接:P3952 时间复杂度 先记几个教训: 字符串形式的数字比较大小老老实实写函数,字典序都搞错几次了 栈空的时候不但pop()会RE,top()访问栈顶也会RE 数字以字符形式读入要考虑位数超过一位 思路: 1.我用的是在线做法. 2.使用结构体存储一个循环体,包括变量名.起始与结束.是否与n有关.是否能够进入(这一点麻烦了,在栈里推入是否与n有关以及是否能够进入就行了) 3.使用一个变量存储当前进入的层数(只记含n的),当…
题目链接 luogu P3952 时间复杂度 题解 直接模拟即可 注意不要直接return 我真是naive ...... 代码 #include<map> #include<stack> #include<cstdio> #include<cstring> #include<algorithm> #define rep(a,b,c) for(int a = b;a <= c;++ a) #define gc getchar() #defi…
时间复杂度 题目链接 对于 100%的数据:L≤100 . 很明显的模拟题 然而考试时还是爆炸了.. 调了一下午.. 蒟蒻表示不会离线操作.. 直接贴代码: #include<cstdio> #include<cstring> #include<iostream> using namespace std; ]; ]; bool dayu(string x,string y) { ; ; else return x>y; } int main() { scanf(&…
https://www.luogu.org/problemnew/show/P3952 这个模拟,注意每次进入循环的时候把新状态全部入栈,退出循环的时候就退栈. 第一次就错在发现ERR退出太及时,把剩余的信息留在流里面. 所以下次还是全部保存在字符串里面就好.一次下载一整段程序. #include<bits/stdc++.h> using namespace std; typedef long long ll; void solve() { int l; scanf("%d"…
链接 : Here! 思路 : 这是一道大模拟, 区分好情况就没问题了 循环构成部分 : $F , x , i , j$ 和 $E$ , 需要注意的是 $i , j$, - 分析 $i, j$ 的情况 : - 当 $i, j$ 全为 $n$ 的时候, 复杂度为 $O(1)$ - 当 $i, j$ 为 $number$ 和 $n$ 的时候复杂度为 $O(n)$ - 当 $i, j$ 为 $n$ 和 $number$ 的时候复杂度为 $O(0)$ - 当 $i, j$ 全为 $number$ 时,…
写了两三个小时,麻烦倒是不麻烦,要考虑清楚,想全了 只过了样例提交是不是傻,要自己造数据 数据不大可以用STL 建议自己刚一下,不看代码 #include <iostream> #include <stack> #include <cstring> #include <cstdio> using namespace std; int n; char a[200][200]; int fuzadu; int vis[30]; struct node { int…
对大模拟抱有深深的恐惧……不过这次写好像还好?拿个栈维护一下循环的嵌套,然后重定义一下读入即可.记得去年在考场上面死活调不粗来,代码也奇丑无比……希望今年能好一点吧! #include <bits/stdc++.h> using namespace std; #define maxn 100000 int L, mark[maxn]; char ans[maxn]; int fread(int t) { , k = ; char c; c = ans[t]; t ++; ')) { ; ; c…
题目描述 小明正在学习一种新的编程语言 A++,刚学会循环语句的他激动地写了好多程序并 给出了他自己算出的时间复杂度,可他的编程老师实在不想一个一个检查小明的程序, 于是你的机会来啦!下面请你编写程序来判断小明对他的每个程序给出的时间复杂度是否正确. A++语言的循环结构如下: F i x y 循环体 E 其中F i x y表示新建变量 ii(变量 ii 不可与未被销毁的变量重名)并初始化为 xx, 然后判断 ii 和 yy 的大小关系,若 ii 小于等于 yy 则进入循环,否则不进入.每次循环…
题意 题目链接 Sol 咕了一年的题解..就是个模拟吧 考场上写的递归也是醉了... 感觉一年自己进步了不少啊..面向数据编程的能力提高了不少 #include<bits/stdc++.h> #define fi first #define se second #define MP make_pair using namespace std; const int MAXN = 101; int T, top = 0, now, mx, flag; pair<char, int> s…
搞一个栈模拟即可.对比一下和一年前考场上的代码233 //2018.11.8 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define N 110 ')) c=getchar();return c;}int read()…
题目: 1.购买板凳(100) 大意:区间修改最后查询全局最大值; 2.新排序(40分暴力) 大意:给一串长度小于100000的数列···每次操作找出序列中严格小于其左边的数字或者严格大于其右边的数字然后删除直到无法操作···最后要求输出最后的序列 3.豆豆游戏(5分dp······) 大意:类似与zuma游戏··给定一个长度小于200的01串··每次往串中插入0或者1构成连续3个相等数字的串的话就能消除····问最少插入多少个0或者1可以消除整个串···注意有连锁反应 题解: 1.差分 略 2…
题目大意:略 傻了吧唧的我wa了好几次 我的模拟功底真的不咋地 linux下用gets会报错,我用的fgets #include <string> #include "stdio.h" #include <cstring> #include <iostream> #include <algorithm> #define ll long long #define N 1010 #define rint register int #defin…
----------------------------------T1---------------------------------- ——>足球联赛 题目描述 巴蜀中学新一季的足球联赛开幕了. 足球联赛有 n 只球队参赛,每赛季,每只球队要与其他球队各赛两场,主客各一场,赢一场得 3 分,输一场不得分,平局两只队伍各得一分. 英勇无畏的小鸿是机房的主力前锋, 她总能在关键时刻踢出一些匪夷所思的妙球. 但是很可惜,她过早的燃烧完了她的职业生涯,不过作为一个能够 Burning 的 girl…
----------------------------------T1---------------------------------- ——>数学老师的报复 题目描述 11 班数学大佬 YXN 又在上数学课的时候把班主任 MP6 的错误当众挑出来了,MP6 再一次感到很难堪,于是决定报复 YXN MP6 对 YXN 说:给你一个函数 f(x),定义如下: f ( 1 ) = 1 f ( 2 ) = 1 f ( n ) = ( A * f ( n - 1 ) + B * f ( n - 2…
收获颇丰的两天··· 题目1:序列操作 给定n个非负整数,进行m次操作,每次操作给出c,要求找出c个正整数数并将它们减去1,问最多能进行多少操作?n,m<=1000000 首先暴力贪心肯定是每次减去数中前c大的数·· 因此我们考虑每次减去前c大的数后依然保持数列的有序性,假设数列为111223,c=5,为了保持有序性,2和3的部分可以正常减去1,但1的话我们需要从最左边开始减··· 所以对应每次操作,我们需要找到减去的最小的数的区间··从最左边开始减···这样就能保持有序性,直接在线段树上维护区…
第一次挂0·····有点感伤···主要是因为时间分配太不合理了··花2个半小时搞第一题最后还wa完了··第二题很简单花了30分钟打完但没打对拍结果wa完···第三题暴力可以拿20分的但没时间打了··· 第一次感受到了暴力的重要性··第一是想不出正解部分分是要拿的··第二是即使想出正解对拍也要用暴力··· 以后考试决定遇到一道题先只想个20分钟·如果想不出正解先把暴力打了··三道题这样弄完后再去细细想正解 题目1:区间 给定一个n个正整数的序列··q次询问两个数a,b,问序列中有多少个区间使得ab…
分数爆炸的一天··但也学了很多 题目1:活动安排 给定n个活动的开始时间与结束时间··只有一个场地··要求保留尽量多的活动且时间不冲突···场地数n<=100000 考点:贪心 直接将结束时间按照升序排序,然后从小到大取不冲突的即可··很像hdu4343,然而我做的时候有点搞麻烦了 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<ctim…
题目1: n个人参赛(n<=100000),每个人有一个权值··已知两个人权值绝对值之差小于等于K时,两个人都有可能赢,若大于则权值大的人赢···比赛为淘汰制,进行n-1轮·问最后可能赢的人有多少个?   考点:简单分析 直接将权值排序,从大到小扫一遍直到num[i+1]-num[i]>k停止··此时答案等于n-i #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath&…
题目: 1.刮刮卡 已知n(n<=1000000)张刮刮卡按顺序排列,刮开可以获得B元现金和B个积分,购买刮刮卡需要A元,某人若按照顺序刮开的话··当B的总和小于A时便会停止刮卡(即花出去的钱多余赢得的钱),现在我们可以将前k张按原来的顺序放到后面去···问k取多少时这个人可以获得多少积分? 2.矩阵 给出一个n行m阵的矩阵(n,m<=100),问如果从中选出K个互不重叠的非空子矩阵使得子矩阵的和最大 3.裁剪表格 给出n行m列的矩阵··(n,m<=1000)和q(q<=10000…
题目: 1.打牌 给定n个整数(n<=1000000),按照扑克牌对子(x,x)或者顺子(x,x+1,x+2)打出牌···问最多可以打出多少次对子或者顺子?牌的大小<=1000000 2.弹球 给定一个n*m的格子(n,m<=1000000000),已知一个球从(1,1)处出发向左下方滚出··每次遇到边界则旋转90度反弹(类似与镜面反射)直到滚到一个角落停止···途中球每次经过一个方格则会将方格染色(包括第一个方格),问只被染一次色的方格有多少个? 3.方盒子 已知有n个盒子(n<…
题目: 1.造盒子 题目描述 企鹅豆豆收到了面积为 K 的一块橡皮泥.但是他没有合适的盒子来装下这个橡皮泥.所以他打算造一个盒子. 制造台是有方形网格的平台,每个小正方形边长为 1 .现在豆豆有两类木板,一类只能放在小正方形的边上,一类只能放在小正方形的对角线上. 现在豆豆想知道最少需要用多少块木板来制造一个封闭的盒子来把橡皮泥放下去. 输入格式 第一行一个整数 T 表示数据组数.对于每组数据的第一行一个整数 K ,表示橡皮泥的大小. 输出格式 输出一个整数表示最少需要的木板数目 样例数据 1…
因为本蒻实在太蒻了...对于即将到来的NOIP2018ssfd,所以下决心要把自己近期做过的题目(衡量标准为洛谷蓝题难度或以上)整理一下,归归类,简单地写一下思路,就当作自己复习了吧qwq 本随笔持续更新,自2018.9.19开始,计划更新到2018NOIP截止 (但是因为最近写的比赛题比较多..但是没有办法把这些题放上来..所以只能放上主流OJ上面有的题) 如果本蒻今年有幸没有AFO掉,flag先里在这里--之后学省选知识点的时候会重开一贴更新的,到时候希望是更有难度的题目吧. 搜索 [NOI…
搜索 [NOIP2013]华容道 最短路+带剪枝的搜索,是一个思维难度比较大的题目. CF1064D Labyrinth 考虑贪心,用双向队列bfs [NOIP2017]宝藏 剪枝搜索出奇迹 题解:https://www.cnblogs.com/fengxunling/p/9777606.html luogu 有趣的数 [ZJOI2007] 时态同步 [NOIP2002] 矩形覆盖 这题数据太水... 题解:https://www.cnblogs.com/fengxunling/p/984161…
口胡警告 NOIP2009 潜伏者 模拟 Hankson 的趣味题 对四个数\(a_0,a_1,b_0,b_1\)分解质因数,结果序列分别记为\(\{p1^{b1}\},\{p2^{b2}\},\{p3^{b3}\},\{p4^{b4}\}\),然后对于每种质因子\(p_i\),它的指数\(a_i\)要满足\(b2_i\le a_i\le b4_i\),然后如果\(b1_i\neq b2_i\),那么\(a_i\)只能为\(b2_i\),如果\(b3_i\neq b4_i\),那么\(a_i\)…
写在前面 一个简略的\(NOIp\)题高组历年题目复习记录.大部分都有单独写题解,但懒得放\(link\)了\(QwQ\).对于想的时候兜了圈子的题打上\(*\). \(NOIp2018\ [4/6]\) 铺设道路 模拟/结论 从左往右扫一遍,扫到高度比前一个大的就累加上两者的高度差. 货币系统 \(dp\)/背包 考虑从货币系统中去掉不必要的货币,不必要的货币其实就是能被其他货币表示出的货币.货币无限多,可以看成完全背包问题,设\(f_i\)为数值\(i\)能否被小于它的数表出. \(*\)赛…