我的隔天Codeforces——Round #371 (Div. 2)
来源:互联网 发布:液晶显示器测试软件 编辑:程序博客网 时间:2024/05/10 11:13
明天网络赛青岛赛区,后天沈阳赛区。今天趁着有空把codeforces371撸掉,明后天以万全的状态去再试试比较正式一点的比赛。
A. Meeting of Old Friends
分析:签到题把,虽然我WA了两次。就是求两条线段的交集长度,中间的特判一下。唉,一开始没有想清楚,WA了两发,气死了。
int main(){ //freopen("d:\\acm\\in.in","r",stdin); ll l1,r1,l2,r2,k; scanf("%lld %lld %lld %lld %lld",&l1,&r1,&l2,&r2,&k); if(l1>l2){ swap(l1,l2); swap(r1,r2); } if(r1<l2)puts("0"); else { ll ans=min(r1,r2)-l2+1; if(l2<=k&&k<=min(r1,r2))ans--; cout<<ans<<endl; } return 0;}
B. Filya and Homework
分析:同签到题,这次WA了三发。很快看出来就是查有多少不同的数,三个以下yes,三个以上No,三个的时候要特判。因为选择加减的数必须是相同的,那么三个数必须满足等差数列才是yes。唉,一开始没有看清题目,结果以为三个就是yes,WA了三发,真TM亏。
int main(){ //freopen("d:\\acm\\in.in","r",stdin); int ln; ll dat[10]; scanf("%d",&ln); int cnt=0; while(ln--){ ll a; scanf("%lld",&a); if(cnt==0)dat[cnt++]=a; else if(cnt>0){ bool flag=false; for(int i=0;i<cnt;i++) if(a==dat[i]){ flag=true; break; } if(!flag)dat[cnt++]=a; if(cnt>3)cnt=-1; } } if(cnt==3){ sort(dat,dat+3); if(dat[0]+dat[2]==2*dat[1])puts("YES"); else puts("NO"); } else if(cnt>0)puts("YES"); else puts("NO"); return 0;}
C. Sonya and Queries
分析:这题稍微有点意思,多说两句。
题意:+ a 代表在一个集合里+一个数, - a代表集合里减掉这个a, ? 010001代表集合里每个数字a从右往左跟那个01组成的串匹配,是1代表偶数,0代表奇数,如果其中一个短了,用0补齐,输出现在集合多少个匹配
做法:一开始以为是01字典树,想写但总觉得哪里不对劲,然后又想了想,发现这道题就是一道简单思维题。这道题具体的数字是没有意义的,真正有意义的是数字的每个位置的奇偶。而且因为匹配的时候是从右往左匹配的,前面没有的部分可以补零,那么从左边开始数到第一个奇数位之前,都是没有意义的。这样的话,不如考虑将10进制转换成2进制,每个10进制位是奇数就转化为1,是偶数就转化为0,得到一个2进制数,当然只有存储时是2进制,我们看到的是另一个10进制数。数字最大到1018 ,转化后的数不会超过1000000,那么只要直接,开数组加减个数,输入即可!
int dat[maxn];char str[20];int cal(){ int len=strlen(str); int ans=0; for(int i=0;i<len;i++) if((str[i]-'0')&1)ans=(ans*2+1); else ans=(ans*2); return ans;}int main(){ //freopen("d:\\acm\\in.in","r",stdin); int n; scanf("%d",&n); char op[5]; int a; while(n--){ scanf("%s %s",op,str); a=cal(); //cout<<a<<endl; if(op[0]=='+')dat[a]++; else if(op[0]=='-')dat[a]--; else printf("%d\n",dat[a]); } return 0;}
D. Searching Rectangles
分析:看到这道题,我是懵逼的,完全没有懂是什么意思。后来听我的同学说了下,才有点明白。首先这是一道交互题,其实区域赛不会搞交互题,最后这种题基本只有老毛子会出,结论那我搞个屁啊!。
E. Sonya and Problem Wihtout a Legend
分析:看到这道题一点思路没有,然后就基本断定是DP题了,DP小白暂时就不看DP了把,真心连题解都看不懂。
给个dalao的博客:http://blog.csdn.net/miracle_ma/article/details/52537208
虽然这篇题解写得有点水哈,但是写粗来总是好的。
0 0
- 我的隔天Codeforces——Round #371 (Div. 2)
- 我的隔天Codeforces——Round #333 (Div. 2)
- 我的隔天Codeforces——Round #334 (Div. 2)
- 我的隔天Codeforces——Round #370 (Div. 2)
- 我的隔天Codeforces——Round #372 (Div. 2)
- 我的隔天Codeforces——Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)
- Codeforces Round #371 (Div. 2)
- Codeforces Round #371 (Div. 2)
- Codeforces Round #371 (Div. 2)
- 【codeforces】Codeforces Round #371 (Div. 2)
- Codeforces Round #371 (Div. 2) E
- Codeforces Round #371 (Div. 2) E dp
- 【解题报告】Codeforces Round #371 (Div. 2)
- Codeforces Round #154 (Div. 2)——B
- Codeforces Round #156 (Div. 2)——B
- Codeforces Round #151 (Div. 2)——B
- Codeforces Round #152 (Div. 2)——B
- Codeforces Round #149 (Div. 2)——B
- 白话浅说TCP/UDP面向连接,面向无连接的区别
- UITabBarController知识整理
- 数组中的逆序对
- 启动其他程序Intent携带的数据
- 实验2 Activity和Intent-任务1
- 我的隔天Codeforces——Round #371 (Div. 2)
- hive之窗口函数理解与实践
- HTML5 canvas标签-4 灰度直方图的实现
- Redis探索之旅(10)- Redis数据结构之有序集合
- NOIP2014提高组D.发射器选址(解题报告)
- 【mysql】SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)
- 五层协议的体系结构
- NotificationListenerService
- HTTP协议头部与Keep-Alive模式详解