[NOIP2017 TG D1T2]时间复杂度】的更多相关文章

题目大意:略 题解:模拟 卡点:1.数组忘清空 (考场代码风格独特...) C++ Code: #include<cstdio> #include<cstring> #include<iostream> using namespace std; const int inf=2000; int T,n,F,E,top,ls,ans,temp,can,w; char ch,s[10000]; string p; bool pd,halt,llw[10000]; bool r…
列队,NOIP2017 TG D2T3. 树状数组经典题. 题目链接:洛谷. 题意: Sylvia 是一个热爱学习的女孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Sylvia 所在的方阵中有\(n \times m\)名学生,方阵的行数为 \(n\),列数为 \(m\). 为了便于管理,教官在训练开始时,按照从前到后,从左到右的顺序给方阵中 的学生从 \(1\) 到 \(n \times m\) 编上了号码(参见后面的样例).即:初始时,第 \(i\) 行…
题目传送门:洛谷P3952 大模拟不解释 #include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #include<queue> using namespace std; int T; int main() { cin>>T; for(; T--;) { ; scanf("%d",…
这道题在考试时看到感觉与第一题放反了位置(因为我还没有看到第一题是结论题) 对于每个语句进行栈的模拟,而如果有语法错误就特判. 对于每一条for语句我们将其与栈顶元素连边,复杂度是1的我们不用考虑,如果复杂度是n我们就算他的贡献加一. 这样我们求最大复杂度就相当于求一颗子树的最大深度,当然如果这条语句不合法我们就将其整颗子树贡献算为0. #include<bits/stdc++.h> using namespace std; int top; struct node { int to,nex;…
嗨小朋友们大家好,还记得我是谁吗?我就是为GG代言的蒟蒻--xzz 今天呐我特别的要向HN的dalao们ZJ的巨佬们还有全国的神犇们问声好 为什么呢因为我们在2017年11月份来到了吔屎的长沙理工大学云塘校区与CCF和神犇们做现场的交♂易 在这次交易中呢发生了一个非常有趣的事下面我就跟大家讲♂一讲 步入正题 联赛爆零,初三退役 --AFO 鉴于有一等我还是补一下吧 Day0 上午敲kmp,manacher.没考到 下午谈完人生以后就去颓2048了 晚上想颓舞线没颓,用笔记本颓2048 Day1…
题目大意:有一个$n \times m$的方阵,第$i$行第$j$列的人的编号是$(i-1) \times m + j$. 现在有$q$个出列操作,每次让一个人出列,然后让这个人所在行向左看齐,再让最后一列向前看齐,最后让这个人站到第$n$行第$m$列的位置. 你需要输出每次出列的人的编号. 题解:可以每行维护一棵平衡树,再给最后一列维护一棵平衡树(虽然正解是用树状数组). 发现每行的人初始编号是连续的,而对于$9 \times 10 ^ {10}$的人数,$3 \times 10 ^ {5}$…
[题目链接] 点击打开链接 [算法] 其实这就是一道模拟题啦! 在判error和计算时间复杂度时,我们需要用栈这种数据结构 [代码] 这题的代码还是有些难写的,写的时候一定要有条理! #include<bits/stdc++.h> using namespace std; #define MAXL 100 const int INF = 2e9; int T,n; ],value[MAXL+]; ],r[MAXL+]; template <typename T> inline vo…
跪着看评测很优秀. 题目描述 给你若干个程序,这些程序只有 For 循环,求这些程序的时间复杂度. Solution 大模拟.讲下细节. flag[i]flag[i]flag[i] 表示第 iii 位有没有对复杂度产生贡献,而且只有 F 开头的语句才会计算. ed[i]ed[i]ed[i] 表示第 iii 位配套的 E 的位置(第 iii 位必须是 F). 注意判 CE 的时候, F x 2 1 F x 1 2 E E 这个程序也要判 CE. 最后贴上代码 #include<cstdio> #…
题目大意:$NOIPD2T2$宝藏 题解:正常做法:状压DP .这次模拟退火,随机一个排列,$O(n^2)$贪心按排列的顺序加入生成树 卡点:没开$long\;long$,接受较劣解时判断打错,没判$n=1​$的情况 C++ Code: #include <cstdio> #include <cmath> #include <algorithm> #include <ctime> #include <cstdlib> #define maxn 1…
题目大意:给定一个有重边,边有权值的无向图.从某一个点出发,求到达所有的点需要的最少费用,并且限制两点之间只有一条路径.费用的计算公式为:所有边的费用之和.而边$x->y$的费用就为:$y$到初始点的之间点的个数(包括起始点) $\times$ 边权. 题解:状压$DP$,令$f_{i,j}$表示当前深度为$i$,状态为$j$的最小花费 $$f_{i,s}=f_{i-1,t}+g_{s,t}\times(i−1)$$ 再开一个数组$c_{s,i}表示状态$s$挖到点$i$的最小花费(不考虑深度)…