2017/8/7 考试吐槽

2017 8 7 得分:50

果然科学定律是不能够违背的……前几天,人品大爆发,考的还像那么回事,但是,带来的副作用是:RP 暴跌……真正需要人品的时候,已经掉光了……我又有什么办法呢……联考挂飞,这就是你!

A、Passward

不要吐槽这个拼写……原题如此……

题面……还是别贴了,找不到啊……直接重述题意+贴相似题目:找出最长的前后缀公共部分,并且这个东西在中间出现过。http://cogs.pro/cogs/problem/problem.php?pid=2688不同的是只有一组数据。

考试时候脑残啊……写挂了Hash……废了自认为的15分……然后……Hash竟然可以A?!……

我曾经是个探险家,直到我膝盖中了一箭!from:一条躺在沙滩上的咸鱼……

不说了都是泪啊啊……

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 const long long BASE=23333;
 7 const int maxn=100005;
 8 unsigned long long HA[maxn],poww[maxn];
 9 char s[maxn];
10 unsigned long long getha(int l,int r)
11 {
12     return HA[r]-HA[l-1]*poww[r-l+1];
13 }
14 int len;
15 bool check(int val)
16 {
17     unsigned long long s1=getha(len-val+1,len),s2=getha(1,val);
18     if(s1!=s2)return 0;
19     for(int i=2;i<=len-val;i++)
20     {
21         unsigned long long s3=getha(i,i+val-1);
22         if(s3==s1)
23             return 1;
24     }
25     return 0;
26 }
27 int haha()
28 {
29     freopen("fool.in","r",stdin);
30     freopen("fool.out","w",stdout);
31     int n;scanf("%d",&n);
32     while(n--)
33     {
34         scanf("%s",s+1);len=strlen(s+1);
35         poww[0]=1;
36         for(int i=1;i<=100000;i++)poww[i]=poww[i-1]*BASE;
37         HA[0]=0;
38         for(int i=1;i<=len;i++)
39         {
40             HA[i]=HA[i-1]*BASE+s[i]-‘a‘;
41         }
42         int ans=0;
43         for(int i=len-2;i;i--)
44             if(check(i)){ans=i;break;}
45         if(!ans)puts("---");
46         else
47         {
48             for(int i=1;i<=ans;i++)putchar(s[i]);
49             puts("");
50         }
51     }
52 }
53 int sb=haha();
54 int main(){;}

A

(就是在这个题基础上过了2688,vscode自动保存退不回去了明明是你懒癌发作不想改回去了啊)

B、就

没错又是个很无厘头的题面……

题意:一排$N$个数,找出$K$个不连续的数使相加和最大。

看到题$SB$的以为这是个数据结构优化DP……大力撸了棵线段树……然后……5分?!!!!!!尼玛啊暴力都没这么少分……我学傻了……

然后正解竟然是……$STL$优化贪心再加链表合并?!把这个点和左右的点退出来,将他们合并看做一个点,合并出来的再塞回去?!这就带上反悔防止选错了?!这就完了?!正确性显而易见,但是这种窒息操作……唉算了算了,反正智障都是一样的,智商是硬伤,自己脑残怨不了别人……

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<set>
 6 using namespace std;
 7 struct pii
 8 {
 9     int first;
10     long long second;
11     bool operator<(const pii &b)const
12     {
13         return second>b.second||(second==b.second&&first<b.first);
14     }
15 };
16 set<pii>s;
17 const int maxn=100005;
18 int n,L[maxn],R[maxn],k;
19 long long res,a[maxn];
20 int haha()
21 {
22     scanf("%d%d",&n,&k);
23     for(int i=1;i<=n;i++)
24     {
25         long long x;scanf("%lld",&x);
26         s.insert((pii){i,x});a[i]=x;
27         L[i]=i-1,R[i]=i+1;
28     }
29     for(int i=1;i<=k;i++)
30     {
31         set<pii>::iterator it=s.begin();
32         pii S=*it;s.erase(it);
33         res+=S.second;int pos=S.first;
34         long long tmp=0;
35         s.erase((pii){L[pos],a[L[pos]]});s.erase((pii){R[pos],a[R[pos]]});
36         a[pos]=tmp=-S.second+a[L[pos]]+a[R[pos]];
37         R[L[L[pos]]]=L[R[R[pos]]]=pos;L[pos]=L[L[pos]];R[pos]=R[R[pos]];
38         //cout<<pos<<" "<<L[pos]<<" "<<R[pos]<<endl;
39         s.insert((pii){pos,tmp});
40     }
41     printf("%lld\n",res);
42     while(1);
43 }
44 int sb=haha();
45 int main(){;}

B

C、书

今天就是这么不正常的一天……

题意:每个书有一定几率被抽到,被抽到时在第几位就耗费多少体力,随后将其放在书的顶部。求无限次操作后抽一本书的期望体力消耗。

真是道防$AK$好题……考场上推了两个小时啥都没推出来,连样例都手玩都玩不出来,以为自己要$GG$,单题被虐100分了……

然后……卧槽这个题全场平均分$0$分?!一个点都没人过?!小数据卡爆搜?!卧槽这个题晚上我得好好口胡一波……

我们按照原题的叙述,设$A[i]$为抽到$i$的概率。我们可以看到,只要抽到了$i$,至少就会造成1的体力消耗。

然后我们就要找到在这个基础上,其他的书对它造成的额外影响。

如果我们直接考虑每种情况的话,显然会超时。我们要找一个合理的方法卡时间。

方法很简单,但却需要费一番脑子:枚举另一本书的情况,然后得出另一本书在这本书前面的概率。

为什么这样是正确的呢?我们换个角度想一想:如果一本书没有书在前面,那么耗费体力绝对就是$1$;如果说有一本书多压在上面,取出它的体力就要多消耗$1$,因此求额外消费的体力也就是求出期望压在这本书上面书的数量。显然,上面的这个式子是正确的。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 const int mod=1e9+7;
 7 const int maxn=1005;
 8 int n,probablities[maxn];
 9 long long qpow(long long v,int tim)
10 {
11     long long tmp=1,t=v;
12     for(;tim;tim>>=1,t=t*t%mod)
13         if(tim&1)tmp=tmp*t%mod;
14     return tmp;
15 }
16 int haha()
17 {
18     scanf("%d",&n);
19     for(int i=1;i<=n;i++)
20     {
21         long long x,y;scanf("%lld%lld",&x,&y);
22         x=x*qpow(y,mod-2)%mod;
23         probablities[i]=x;
24     }
25     long long ans=0;
26     for(int i=1;i<=n;i++)
27     {
28         long long sum=1;
29         for(int j=1;j<=n;j++)
30             if(j!=i)sum=(sum+probablities[j]*qpow((probablities[i]+probablities[j])%mod,mod-2))%mod;
31         ans=(ans+sum*probablities[i]%mod)%mod;
32     }
33     printf("%lld\n",ans);
34 }
35 int sb=haha();
36 int main(){;}

C

时间: 2024-07-30 13:50:42

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

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/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/8/13 考试吐槽

2017 8 13 得分:160 联考最后一天--因为不会对拍日常爆炸-- A.最长上升子串 题意:给出一个序列,允许修改一次元素,求出这个序列最长子串. 这个玩意我刚开始以为是个线性$DP$,然后--细节巨多,写出来之后出一个数据卡一个-- 慌得我直喝水直上厕所--然后转到第$8$趟的时候,由于厕所比我在的那个窝风角落凉快,我的脑子算是冷静了下来,仔细一想,卧槽这不是$DP$!我可以先正序求出以每个元素开头子串长度,再倒序求出每个元素结尾子串长度,之后枚举修改位置,检查修改效果!$mdzz$-

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

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

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

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

PAT(甲级)2017年秋季考试

PAT(甲级)2017年秋季考试 还有一题由于上午心情复杂..没调试完.待补. A Cut Integer 模拟题 #include<bits/stdc++.h> using namespace std; typedef long long ll; int n; int getLen(ll x){ int len = 0; while(x){ len++; x/=10; } return len; } int main(){ cin>>n; while(n--){ ll x; ci