明天网络赛青岛赛区,后天沈阳赛区。今天趁着有空把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(){
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进制数。数字最大到
10 18
,转化后的数不会超过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了把,真心连题解都看不懂。
虽然这篇题解写得有点水哈,但是写粗来总是好的。