2017/8/13 考试吐槽

2017 8 13 得分:160

联考最后一天……因为不会对拍日常爆炸……

A、最长上升子串

题意:给出一个序列,允许修改一次元素,求出这个序列最长子串。

这个玩意我刚开始以为是个线性$DP$,然后……细节巨多,写出来之后出一个数据卡一个……

慌得我直喝水直上厕所……然后转到第$8$趟的时候,由于厕所比我在的那个窝风角落凉快,我的脑子算是冷静了下来,仔细一想,卧槽这不是$DP$!我可以先正序求出以每个元素开头子串长度,再倒序求出每个元素结尾子串长度,之后枚举修改位置,检查修改效果!$mdzz$……原来又是个思博题……

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 using namespace std;
 6 const int maxn=300005;
 7 int a[maxn],f[maxn],n,g[maxn];
 8 int haha()
 9 {
10     scanf("%d",&n);
11     for(int i=1;i<=n;i++)scanf("%d",&a[i]);
12     int ans=0;a[n+1]=2147483647;
13     for(int i=n;i>=1;i--)
14     {
15         if(a[i]<a[i+1])f[i]=f[i+1]+1;
16         else f[i]=1;
17         ans=max(ans,f[i]);
18     }
19     for(int i=1;i<=n;i++)
20     {
21         if(a[i]>a[i-1])g[i]=g[i-1]+1;
22         else g[i]=1;
23         ans=max(ans,g[i]);
24     }
25     for(int i=1;i<=n;i++)
26     {
27         ans=max(f[i+1]+1,ans);
28         ans=max(g[i-1]+1,ans);
29         if(a[i-1]+1<a[i+1])ans=max(ans,f[i+1]+g[i-1]+1);
30     }
31     printf("%d\n",ans);
32 }
33 int sb=haha();
34 int main(){;}

A

B、中值滤波

题意:$0-1$序列左右端点不变,中间各个元素大小是以该元素为中心的长度为$3$序列的中位数。求出几次之后这个序列不再变化。

当时其实看出了些东西……当时我就意识到,连续的两个或以上相同数字连在一起这一小段就不会再发生变化,而间隔的$0$和$1$经过最多$区间长度/2$次操作也就会稳定……

然而题面中的那个$-1$把我禁锢住了……我一直在找有没有稳定不下来的情况……找不出来但总觉得有坑……于是就没有打正解……

结果那个$-1$自己就是坑……压根不存在这种情况……吔屎啦(╯‵□′)╯︵┻━┻……出题人今晚和非凡哥一起吃……

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 const int maxn=500005;
 7 int a[maxn],n,tot[maxn],lastpos[maxn],b[maxn];
 8 int haha()
 9 {
10     scanf("%d",&n);
11     for(int i=1;i<=n;i++)scanf("%d",&a[i]),b[i]=1;
12     int l=1,r=1,length,pos=1,ans=0;
13     while(pos<n)
14     {
15         while(a[pos]==a[pos+1]&&pos<n)b[pos]=a[pos],pos++;
16         l=pos;
17         while(a[pos]!=a[pos+1]&&pos<n)pos++;r=pos;
18         length=r-l+1;
19         if(length&1)
20             for(int i=l;i<=r;i++)b[i]=a[l];
21         else for(int i=0;i<length>>1;i++)b[i+l]=a[l],b[r-i]=a[r];
22         ans=max(ans,(length-1)>>1);
23     }
24     printf("%d\n",ans);
25     for(int i=1;i<=n;i++)printf("%d ",b[i]);
26 }
27 int sb=haha();
28 int main(){;}

B

C、约会

题意:找出树中与两点距离相等点的个数。

当时我考虑对了两种情况……

第一种:

距离是奇数,没有这样的点……

第二种:

俩玩意离$LCA$距离相等,除了这两棵子树点都可以……

然而我错了两种情况……

第一种:

俩家伙距离$LCA$不相等……个数就得是中点子树大小减去$X$在的那棵子树大小……

第二种:

一张图说明一切……

就这样还给我十分……谢天谢地……

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 using namespace std;
 6 const int maxn=300005;
 7 struct node
 8 {
 9     int from,to,next;
10 }edge[maxn<<1];
11 int head[maxn],tot;
12 void addedge(int u,int v)
13 {
14     edge[++tot]=(node){u,v,head[u]};head[u]=tot;
15 }
16 int pa[maxn],dep[maxn],siz[maxn],n;
17 void dfs(int root,int p,int deep)
18 {
19     pa[root]=p;siz[root]=1;dep[root]=deep;
20     for(int i=head[root];i;i=edge[i].next)
21     {
22         int v=edge[i].to;
23         if(pa[root]!=v)
24         {
25             pa[v]=root;
26             dfs(v,root,deep+1);
27             siz[root]+=siz[v];
28         }
29     }
30 }
31 int rt[maxn][32];
32 void init()
33 {
34     for(int i=1;(1<<i)<=n;i++)
35         for(int j=1;j<=n;j++)rt[j][i]=-1;
36     for(int i=1;i<=n;i++)rt[i][0]=pa[i];
37     for(int i=1;(1<<i)<=n;i++)
38         for(int j=1;j<=n;j++)
39             if(rt[j][i-1]!=-1)rt[j][i]=rt[rt[j][i-1]][i-1];
40 }
41 int lca(int x,int y)
42 {
43     int i;if(dep[x]<dep[y])swap(x,y);
44     for(i=0;(1<<i)<=dep[x];i++);i--;
45     for(int j=i;j>=0;j--)
46         if(dep[x]-(1<<i)>=dep[y])x=rt[x][j];
47     if(x==y)return x;
48     for(int j=i;j>=0;j--)
49         if(rt[x][j]!=-1&&rt[x][j]!=rt[y][j])x=rt[x][j],y=rt[y][j];
50     return pa[x];
51 }
52 int ord[maxn];
53 int haha()
54 {
55     scanf("%d",&n);
56     for(int i=1;i<n;i++)
57     {
58         int x,y;scanf("%d%d",&x,&y);
59         addedge(x,y);addedge(y,x);
60     }
61     dfs(1,0,1);init();
62     for(int i=1;i<=n;i++)scanf("%d",&ord[i]);
63 }
64 int sb=haha();
65 int main(){;}

C

时间: 2024-10-18 06:01:47

2017/8/13 考试吐槽的相关文章

2017/8/4 考试吐槽

2017 8 4 得分:110 一句话:江南皮革厂倒闭了!会的东西全带着他们的小姨子跑了!成绩统统二十分!统统二十分! A.聪明的质检员 链接:http://cogs.pro/cogs/problem/problem.php?pid=631 题意:找到一个式子:Y_i = \sum_j 1 \times \sum_j v_j ,  j \in [L_i, R_i] \text{且} w_j \ge W, j \text{是矿石编号}与标准差绝对值最小的情况. 吐槽:二分写成三分--少写一个库--

2017/8/7 考试吐槽

2017 8 7 得分:50 果然科学定律是不能够违背的--前几天,人品大爆发,考的还像那么回事,但是,带来的副作用是:RP 暴跌--真正需要人品的时候,已经掉光了--我又有什么办法呢--联考挂飞,这就是你! A.Passward 不要吐槽这个拼写--原题如此-- 题面--还是别贴了,找不到啊--直接重述题意+贴相似题目:找出最长的前后缀公共部分,并且这个东西在中间出现过.http://cogs.pro/cogs/problem/problem.php?pid=2688不同的是只有一组数据. 考

2017/8/2 考试吐槽

2017 8 2 得分:70 首先扯点题外话:之前那么多天考试从来不公开吐槽,主要是因为每天都有我们的学长出的题,涉及到了他们的知识产权,我不方便发出来.但是今天!没有!全是原题!因此我要向全世界吐槽一发!让全世界感受到我的蒟蒻!(滑(fa)稽(gi))好了不废话了,现在进入正题:吐槽+题解-- 一句话:代码长度与正确性一定成反比! A.路面修整 吐槽:果然是我太弱了,这个东西都想不出来-- 链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1

2017/8/6 考试吐槽

2016 8 6 成绩:20 (既然翻车了就多扯几句,反正也不怕什么,都是自己人) 得知成绩的一刻瘫倒在了地上--满怀希望的一场考试竟是这样的一场大翻车--只能用惨烈形容了--我菜爆了--一天天依赖STL都有毒啊--我说啥啊--能说的全卡在嗓子眼出不来啊--我真--菜的抠脚!唉--全都考好了,自己弱也怪不得出题人--算了先到这里,先开始口胡 A.天鹅会面 首先贴出一个英吹四艇的OJ上的链接:http://codeup.hustoj.com/problem.php?id=25481&csrf=5d

2017/8/12 考试吐槽

2017 8 12 得分:200 我只能说一句话:这才是$NOIP$难度吧--(神$TM$联赛考$FFT$) A.灌水 题意:$n$根板子长度是$1~n$全排列,找出一种方法,使得板子组成的容器容量恰好为定值. 眼瞪十分钟$+$$coding$ $15$分钟 $+$ $debug$ $5$分钟 $=$ $AC$. 首先我们可以知道,整个容器容量最大的情况就是两根最长的板子夹在两边,中间全是相对较短的板子,这样获得的最大的容量就是\[\frac{(n - 2)(n- 1)}{2 }\].那么我们就

2017/8/9 考试吐槽

2017 8 9 得分:70 感觉现在自己最弱的地方不是在于思维活性上,而是在于那些本不应该出现在我身上的问题,比如说什么看出正解打不出来啦.打出正解莫名其妙被卡分啦.莫名其妙少些什么导致爆零啦.读不懂题啦.读不懂题啦.读不懂题啦--反正问题太多了-- A.calc 题意:求出所有顺序对的贡献,定义顺序对贡献为这两个数之间比前者大比后者小数的个数. 一眼瞪出这个东西是用求逆序对的方法搞,但是1.这个东西肯定不是归并排序搞得出来的,2.我不会树状数组求逆序对--欢声笑语中打出$GG$-- 实际上也

总结2017.3.13考试

1.本题考查List接口与实现类的关系.Java的List接口有3个实现类,分别是ArrayList.LinkedList.Vector,它们用于存放多个元素,维护元素的次序,而且允许元素重复.本题应选择D. 4.本题考查HashMap集合类的特性.Java的HashMap 类是一个散列表,它存储的内容是键值对(key-value)映射.HashMap 继承于AbstractMap,实现了Map.Cloneable.java.io.Serializable接口.因为它属于Map接口的类,所以实现

2017年精算师考试准考证打印入口及流程

2017年精算师考试将在10月28日至24日进行,距离精算师考试时间还是有28天.由于考试时间即将来临,在考试临近的时候,考生们最关心的问题就是精算师考试准考证打印的相关问题,今天小编就来告诉大家探讨一下. 相信还有大部分考生还不清楚精算师考试准考证打印入口在哪里,其实考生们只需要在网上直接进入中国精算师协会官网,就可以打印准考证了. 当然对于很多第一次报名参加精算师考试的考生来说,对于这一块没有什么经验,所以为大家梳理了一下精算师考试准考证打印的具体流程,以供大家参考. 1.请报名成功的考生在

【临时重发】复旦大学 在职软件工程硕士(双证)2017年入学考试 参考书推荐

[临时重发]复旦大学 在职软件工程硕士(双证)2017年入学考试 参考书推荐 2017-06-04 MSE热线 复旦MSE热线 (一)统考科目:(除了政治时政版(现在还没有),不一定要所谓2018版) 政治理论 (1)<全国硕士研究生招生考试 思想政治理论 考试大纲>,教育部考试中心,高等教育出版社,10元. (2)<全国硕士研究生招生考试 思想政治理论 考试大纲解析>,教育部考试中心,高等教育出版社,59元. 英语(二) (1)<全国硕士研究生招生考试 英语(二) 考试大纲