
jzoj
nymph181
这个作者很懒,什么都没留下…
展开
-
纪中2019培训1.17~1.31总结
纪中二周游,被dalao吊打原创 2019-01-30 14:32:59 · 433 阅读 · 2 评论 -
JZOJ_7.18C组第一题 好元素
题意给出一个序列,如果满足ai+aj+ak=al(i,j,k<k)(i,j,k可以相同)ai+aj+ak=al(i,j,k<k)(i,j,k可以相同)ai+aj+ak=al(i,j,kalalal就是一个好元素,求出这个序列里一共有多少个好元素。思路hash判重。我们可以让ai+aj+ak=alai+aj+ak=alai+aj+ak=al移项变成ai+aj=al−aka...原创 2018-07-18 20:24:50 · 207 阅读 · 0 评论 -
JZOJ_7.17C组 总结
前言这次比赛只做了两题,后面的两题都没时间做,不过后面改出来了,现在还剩第二题没改。第一题 乱头发节单调栈。比赛时打了暴力和正解,但是暴力的开了longlong,单调栈的没开,丢了10分。第二题 Round Numbers现在(7.18)没改出来,听别人说是组合数啥的。第三题 玉米田状压dp。个人认为还可以。第四题 路障SPFA+枚举。比赛时没有想到...原创 2018-07-18 16:11:51 · 217 阅读 · 0 评论 -
JZOJ_7.17第四题 路障/洛谷P2865 路障Roadblocks
题意给出一个无向图,求出次短路径(一条路可以来回走)。思路跑两边SPFA,一次从起点跑,一次从终点跑。然后枚举一条中转边,找到比最短路长的路径,取最小值。代码#include<cstdio>#include<cstring>#include<queue>#include<algorithm>using namesp...原创 2018-07-18 07:37:19 · 531 阅读 · 0 评论 -
JZOJ_7.10C组总结
第一题 分队问题这题我用的是贪心,正解是dp,之后要回来补一下dp的做法。第二题 数字对原创 2018-07-12 07:42:15 · 183 阅读 · 0 评论 -
JZOJ_7.17C组第一题 乱头发节/洛谷P2866 糟糕的一天Bad Hair Day
题意给出n头牛的身高。它们都往右边看,只有high[i]&gt;high[j]的情况下,i牛才能看到j牛的头发,如果i牛被挡住了,那么它就看不见后面的牛了。现在我们要求出每只牛可以看见的牛的头发的数量的总和。思路一个方向而且有大小限制,我们就可以想到使用单调栈。每次待入栈的牛的身高要和栈顶判断,弹到栈顶&lt;待入栈的牛的身高,之后让答案累加上tot-1,tot代表栈的长度,因为栈...原创 2018-07-17 20:28:25 · 357 阅读 · 0 评论 -
JZOJ_7.17C组第三题 玉米田/洛谷P1879 玉米田Corn Fields
题意给出一个m∗nm∗nm*n的矩阵,上面的每个格子之中有一个数字,1代表可以放玉米,0代表不可以放玉米,而且相邻的格子中不能同时种玉米,求出种玉米的方案数%10810810^{8}(包括全都不种的)。思路状压dp。设grass[i]为每行刚读入的状态,f[i][j]为第i行的状态为j时的方案总数。然后枚举j和k表示当前行和上一行的状态就可以进行判断累加了。代码#inc...原创 2018-07-17 19:59:01 · 318 阅读 · 0 评论 -
JZOJ_7.10C组第三题 高级打字机
题意给一个打字机,有三种操作:1、T x 在文章末尾打下一个小写字母x;2、U x 撤销最后的x次操作(Q算操作);3、Q x 查询文章的第x位是什么字母。50分保证U不会撤销U,100分U会撤销U。思路有人用主席树的,还有一些神奇的东西,我这里用pascal直接模拟。用a[i]记录第i次操作时文章的状态,T操作时直接在a后面插入字符,U操作就让当前的跳回a[i-x-1]状态,查询...原创 2018-07-11 07:24:38 · 300 阅读 · 0 评论 -
JZOJ_7.10C组第二题 数字对
题意给出数对(a,b),每次可以做2种操作使这个数对变成(a,a+b)或(a+b,b),现在a,b=1,求出至少进行几次操作可以让a和b其中一个数=n。思路刚开始打了个深搜可以拿个50分,加上了一个剪枝拿了60分,好像有大佬直接深搜可以AC。后来听大佬解释,大致是这样的:给出(a,b),求还原回(1,1),方法是:a&gt;b (a-b,b),a&lt;=b (a,b-a)。对于给...原创 2018-07-10 22:02:15 · 564 阅读 · 0 评论 -
JZOJ_7.9C组总结
第一题 删边看到题目就知道是一道水题,直接切掉。第二题 骑士问题BFS的模板题,打了20分钟左右,结果记录障碍的map忘清零,丢了27.5分(这数据还是很水的)。第三题 排列的编码比赛时一直没找到规律,用next_permutation函数水了12.5分(特判和输出没处理好,不然这样可以拿到75分),之后听同学们的方法自己找到了规律,高精度还是打了一会。第四题 ...原创 2018-07-10 16:47:04 · 223 阅读 · 0 评论 -
JZOJ_7.12C组 终章-剑之魂
题意给出几个数,求出它们其中2个之间进行&amp;操作的最大值。思路不是正解! 我的做法:直接排序,然后判断当前匹配的是否大于之前的,不然就直接退出。代码#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;int n,a[1000001],ans=-1;bool cmp(int ...原创 2018-07-16 15:17:13 · 245 阅读 · 0 评论 -
JZOJ_7.12C组总结
前言这次打了一个歪解,居然把第三题水了100分,第二题炸了。 第一题 序章-弗兰德的秘密这道题是树形dp,不过本人蒟蒻没打出来,dp是硬伤。第二题 圣章-精灵使的魔法语数据结构线段树。一开始想打一个水法结果好像错了就没得40分,后面改了好久的线段树发现是细节错误。第三题 终章-剑之魂贪心。正解没敲出来,但是打了另一种方法可以水过,我觉得这并不是很好。...原创 2018-07-16 15:03:09 · 205 阅读 · 0 评论 -
JZOJ_7.18C组第二题 倒霉的小C
题意给出一个n,每次画出一个(n,(−1)i+1∗i)(n,(−1)i+1∗i)(n,(-1)^{i+1}*i)的向量,一共画出n个这样的向量,求这个图形穿过了几个格点。思路通过观察我们可以发现每次画出(n,i)(n,i)(n,i)的向量经过的格点数为gcd(i,n)gcd(i,n)gcd(i,n),所以答案为∑i=1ngcd(i,n)∑i=1ngcd(i,n)\displayst...原创 2018-07-18 21:52:30 · 186 阅读 · 0 评论 -
JZOJ_7.18C组第三题 最短路径
题意思路动态规划。我们可以把去的路和来的路分开做,设f[i][j]f[i][j]f[i][j]表示第一个点走到iii,第二个点(回去的那个点)走到jjj的最优值,可以得出动态转移方程: f[i][k]=min(f[i][k],f[i][j]+dis[j][k]f[i][k]=min(f[i][k],f[i][j]+dis[j][k]f[i][k]=min(f[i][k],f[i]...原创 2018-07-19 07:47:33 · 188 阅读 · 0 评论 -
JZOJ_7.6C组第一题 矩阵
题意给出一些矩形相乘,求出它们最少的乘法次数。矩形A(n*m)*B(m*p)的乘法次数就是n*m*p,它们相乘之后会得到一个矩形C(n*p)。思路做题的时候不会矩阵乘法,还看不懂样例。矩阵相乘时满足结合律,A*B*C=A*(B*C),我们这里用区间动态规划来做就好了。设f[i][j]f[i][j]f[i][j]为第i个矩形乘到第j个矩形的最小次数,可以得出动态转移方程:f[i][j...原创 2018-07-06 19:12:46 · 209 阅读 · 0 评论 -
JZOJ_7.15C组第三题 汉诺塔
题意简单的汉诺塔问题,改了一下规则:不能把盘子从1号柱上直接移到3号柱上,也不能把盘子直接从3号柱上移到1号柱上。现在给出盘子的数量,判断它第m个状态时每个盘子都在哪个柱上(初始状态算0)。思路这题正解比较神奇。但是我们可以用另一种方法,根据打表,我们能发现,当n为3时,状态从0到27分别为: 1 1 1 2 1 1 3 1 1 3 2 1 2 2 1 1 2 1 1...原创 2018-07-16 08:54:28 · 179 阅读 · 0 评论 -
JZOJ_7.15C组第四题 城市统计
前言13、14日的题被我吃掉了,有时间再吐出来。题意给出一个矩阵,上面有商业区和居民区,以每个点为中心,在它不超过r的直径下计算出这个矩形里每个居民区到离它最近商业区的曼哈顿距离的总和,最后输出一个矩形,上面代表每个点为矩形的答案。思路先用bfs求出每个居民区到最近的商业区的距离,之后n22^{2}处理以每个点为最右下角,以(1,1)为最左下角的矩形之间的距离总和,后面n2...原创 2018-07-15 19:57:54 · 246 阅读 · 0 评论 -
【Trie】JZOJ_3126 大LCP
题意给出一些字符串,有q次询问,问前k个字符串中两两之间的最大的LCP(最长公共前缀)。思路因为是前k个,我们就可以用一个数组来记录。把每次读入的字符串存进字典树里,在放进字典树的过程中我们可以很容易地计算出它和之前的字符串的LCP,然后和前面的比较就好了。代码#include&amp;amp;amp;amp;amp;lt;cstdio&amp;amp;amp;amp;amp;gt;#include&amp;amp;amp;a原创 2018-07-14 16:36:15 · 207 阅读 · 0 评论 -
JZOJ_7.11C组第三题 设计
题意给出每两头牛之间的距离限制,求出第一头牛到第n头牛的最远距离,如果不存在输出-1,如果可以任意远输出-2。思路差分约束系统。 两头牛相互喜欢时,dis[j]-dis[i]<=len 两头牛相互反感时,dis[j]-dis[i]>=len 要让它们变成同一个符号所以相互反感就是dis[i]-dis[j]<=-len 所以相互喜欢时,从i向j连一条长度为len...原创 2018-07-14 08:03:26 · 206 阅读 · 0 评论 -
JZOJ_7.11C组第二题 轻轨/洛谷_1607 庙会班车
题意在一条路上有N个站点(起点是1,终点是N),在K个站上有几群牛,牛的数量为mi,起点和终点分别为si和ei。现在有一辆容量为C的车从1站点到N站点,求出一共有多少头牛可以从它们的起点达到它们要去的地方。(每个站上的牛群可以只上一部分)思路贪心,记录经过每个站点上时车上牛的数量,如果能上就给它上(按终点从小到大排序)。代码#include&lt;cstdio&gt...原创 2018-07-14 07:49:54 · 293 阅读 · 0 评论 -
记录
咕咕咕原创 2018-03-27 21:13:27 · 400 阅读 · 3 评论 -
JZOJ_7.19C组第四题 秀姿势
题意给出一个序列,我们可以进行k次操作,每次操作都能刷掉所有相同的数,求出这个序列中的连续子序列最长。 思路这题我们可以用到队列。维护一个区间,使里面数的种类不超过k+1,那答案就为这些合法区间中的相同的数的数量的最大值。代码#include<cstdio>#include<cstring>#include<algorithm&g...原创 2018-07-19 20:47:26 · 225 阅读 · 0 评论 -
JZOJ_7.19C组第二题 休息
题意给出一个序列,每次把里面单调递减的序列翻转过来,求翻多少次能翻成单调上升的状态。思路我们先模拟第一轮翻转。之后求出这里面的逆序对的个数就好了。证明方法如下: 逆序对还不是很懂。代码#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;int a[100001],n,t[100001]...原创 2018-07-19 20:30:36 · 189 阅读 · 0 评论 -
JZOJ_7.19C组第一题 小麦亩产一千八
题意给出一个棋盘,第0个格子放1粒小麦,第1个格子放p粒小麦,第2个格子放之前两个格子总和的小麦。现在给出第a个格子的小麦粒数x,求出第b个格子的小麦粒数。思路我们按照题意可以得出第0个格子的小麦粒数为111,第1个格子的小麦粒数为ppp,第2个格子的小麦粒数为p+1p+1p+1,第3个格子的小麦粒数为2p+12p+12p+1,以此类推我们可以发现小麦粒数的系数和加数都是斐波拉契数...原创 2018-07-19 15:36:48 · 283 阅读 · 0 评论 -
JZOJ_7.6C组 总结
第一题 矩阵比赛时看不懂样例,所以没有做,后来改题时经过同学讲解恍然大悟。第二题对于我来说好难,去问同学也听不懂,比较奇怪,还是没有做出来。第三题 扑克游戏玄学的合并果子,考试时也没有发现可以这样做。总结这次题目还可以,有一题没改出来,之后要用空闲的时间改一下了。...原创 2018-07-07 07:28:20 · 202 阅读 · 0 评论 -
JZOJ_7.6C组第三题 扑克游戏
题意思路这题比较玄学,用合并果子的代码就能过了。可能是合并果子中的代价是从本来的果子中重复计算出来的,应该和这里一样。代码#include&lt;cstdio&gt;int ans,n,num,a[10001];void swap(int &amp;a,int &amp;b){ int t=0; t=a;a=b;b=t;}void up(i...原创 2018-07-06 19:31:42 · 306 阅读 · 0 评论 -
JZOJ_7.11C组总结
前言考的不是很好,第一题看不懂题目,第二题第三题想不出方法,结果随便水了一下对了样例,得了20分。 第一题 气象牛动态规划,考试时连题都没看懂,现在7.16日还没改出来。第二题 轻轨考试时以为是动态规划或者网络流,结果贪心就能过。第三题 设计新的知识差分约束,考试的时候完全不会,之后听大佬讲完了课就觉得比较简单了。总结我现在还有3~4道题没改,...原创 2018-07-16 14:57:05 · 228 阅读 · 0 评论 -
JZOJ_7.6C组 圆环取数
题意给出一些数字,把它们围成环,指针一开始指向第一个数字。我们每次可以取走指针周围的距离不超过k的格子里的数字,每次取走一个数字的代价就是这个数字,转动一次指针所需要的代价为剩下的数字中的最大值,求取完所有数字的最小代价。思路这道题我们可以用dp来做。首先我们把数字累加起来,因为取走数字的代价是固定的。然后我们就可以只考虑移动指针的代价了。 设f[i][j][0/1]f[i][j][...原创 2018-07-16 13:11:41 · 598 阅读 · 0 评论 -
JZOJ_7.9第四题 求值
题意思路按照题意模拟。代码#include<cstdio>#include<algorithm>using namespace std;int n,a[50001],P,Q;int main(){ scanf("%d",&n); for (int i=1;i<=n;i++) scanf(...原创 2018-07-09 19:17:48 · 231 阅读 · 0 评论 -
洛谷_2024 食物链
题目题意: 给出n只动物和k句话,判断这k句话里有几句假话。思路: 题目中告诉了我们假话的几种情况:• 当前的话与前面的某些真的话冲突,就是假话• 当前的话中 X 或 Y 比 N 大,就是假话• 当前的话表示 X 吃 X,就是假话我们可以用x表示同类,x+n表示猎物,x+2n表示天敌,然后我们在读入的时候判断后两种情况,第一种另外判断。代码:#include<cstdio>...原创 2018-02-04 18:16:12 · 328 阅读 · 0 评论 -
洛谷_1551 亲戚
题目题意: 给出n个人的亲戚关系,之后给出p对人,判断这两个人之间有没有亲属关系。思路: 因为这是并查集的例题,所以这里用并查集,每次读入都让它们合并起来,可以压缩路径。代码:#include<cstdio>int n,m,p,x,y,father[50001];int find(int a){ if (father[a]!=a) father[a]=find...原创 2018-02-04 09:17:30 · 778 阅读 · 0 评论 -
jzoj_1478 堆排序
题目题意: 给出n个数,从小到大排序后输出。思路: 用堆来操作,每次都取堆顶来输出并从堆里面删除掉它。代码:#include<algorithm>#include<cstdio>using namespace std;int a[200001],num,n;void up(int x){ int t=0; while (x...原创 2018-02-04 09:28:52 · 236 阅读 · 0 评论 -
jzoj_2月3日D组
第一题(池塘):题意: 有一个矩阵,'W'代表积水,'.'代表没有积水,如果积水是连起来的就算作一个池塘,一个积水周围8个方向都与它相连。思路: 这题和之前1月26日的家族很像,就是用深搜去把相连的W去掉并统计池塘个数,模拟赛的时候,因为输入等原因,我才拿了10分,细节很重要~~代码:#pragma GCC optimize(2)#include#inclu原创 2018-02-03 21:36:28 · 328 阅读 · 0 评论 -
jzoj_2月2日D组
第一题(公牛数学):题意: 高精乘。思路: 比赛的时候我忘了高精乘,然后想了1小时写了个不一样的居然A了,下面贴上我的丑代码。代码:#include#include#includechar a[101],b[101];int l1,l2,c[101],d[101],ans[101];void init(){ scanf("%s",a);原创 2018-02-02 19:51:47 · 303 阅读 · 0 评论 -
jzoj_2月1日D组
第一题(牛车):题意: 一些牛要开车上高速公路,第i头牛的车速为si,有m条高速公路,如果一条车道上前面有x头牛,那现在这头牛的速度就会降低d*x,我们现在要求最多能有多少头牛能上高速。思路: 先让他们的速度排序,因为最好是速度慢的先上高速比较好,然后从1到n头牛枚举,从1到m条车道枚举,如果这头牛可以上这条车道,我们就用一个数组统计这条车道上牛的数量,然后让ans+1原创 2018-02-01 20:21:23 · 317 阅读 · 0 评论 -
jzoj_1月30日D组
第一题(二项式展开式):题意: 求(a+b)^n的展开式,例如(a+b)^3=a^3+3a^2+3ab^2+b^3。思路: 题目中告诉了我们求(a+b)^n的方法,(a+b)^n=?a^n+?a^(n-1)b+?a^(n-2)b^2+…+?b^n其中问号表示系数,(a+b)^n展开式的第i+1项(i=0...n)为a^(n-i)b^i前面的系数为C(n,i),如果系数为原创 2018-02-01 19:04:31 · 321 阅读 · 0 评论 -
jzoj_1月31日D组
第一题(奇数统计):题意: 给出n个数,里面有一个数是出现了奇数次的,我们要求出这个数。思路: 这题太水了,数据也是很小,直接开桶判断。代码:#includeint n,x,b[500001],m,q;int main(){ freopen("count.in","r",stdin); freopen("count.out","w",stdout);原创 2018-02-01 18:24:47 · 295 阅读 · 0 评论 -
jzoj_1月29日D组
第一题(noip):题意: 给出一段长度为n的字符串,里面只有NOI三个字母组成,我们现在要求插入一个字符,这个字符可以等于NOI中的其中一个字符,求我们插入这个字符后我们可以有多少种选法选成NOI这一串。思路: 我们可以求出原来没插入字符前选NOI这一串的选法,它就等于每个O的前面N的个数*每个O的后面的I的个数,例如,NOIOI中,它原来的选法等于NOIOI:1*2原创 2018-01-30 19:10:41 · 359 阅读 · 0 评论 -
jzoj_1月28日D组
第一题:(懒惰的奶牛[b]):题意: 一只奶牛只能走k步路,有些位置可能有青草,求它的起始位置在哪里可以让它吃到的青草数量最多。思路: 一开始我想的是用前缀和来存储每个位置前的青草书,但是不知怎么错了一个点,后来改成了反过来的循环求就对了,从前缀数组的终点到k-1来循环,k代表从一个点上可以到的最远距离,我们让它*2就是一个点往左右两边占的距离,用pre[i]-pre[原创 2018-01-30 11:31:26 · 364 阅读 · 0 评论 -
jzoj_1月27日D组
第一题(反射):题意: 给出一些镜子,有摆成'/'和'\'样子的,求一个光源照进来最多会在这些镜子中反射几次。思路: 光射进来有四个方向,我们可以设置一个变量记录方向状态,然后从四个方向来枚举并保存最大值,一开始我就是这样做的,然后因为一个细节浪费了很多时间。代码:#include#includeint fx,x,y,n,m,ans,s;//fx记录原创 2018-01-28 19:04:02 · 365 阅读 · 0 评论