2013年ACM网络赛成都赛区

点击打开链接

We Love MOE Girls

Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 282    Accepted Submission(s): 207


Problem Description
Chikami Nanako is a girl living in many different parallel worlds. In this problem we talk about one of them.
In this world, Nanako has a special habit. When talking with others, she always ends each sentence with "nanodesu".
There are two situations:
If a sentence ends with "desu", she changes "desu" into "nanodesu", e.g. for "iloveyoudesu", she will say "iloveyounanodesu". Otherwise, she just add "nanodesu" to the end of the original sentence.
Given an original sentence, what will it sound like aften spoken by Nanako?
 


 

Input
The first line has a number T (T <= 1000) , indicating the number of test cases.
For each test case, the only line contains a string s, which is the original sentence.
The length of sentence s will not exceed 100, and the sentence contains lowercase letters from a to z only.
 


 

Output
For every case, you should output "Case #t: " at first, without quotes. The t is the case number starting from 1. Then output which Nanako will say.
 


 

Sample Input
  
  
2 ohayougozaimasu daijyoubudesu
 


 

Sample Output
  
  
Case #1: ohayougozaimasunanodesu Case #2: daijyoubunanodesu
 


 

Source
 


 

Recommend
liuyiding

 

题意是说输入一段字符串,如果字符串是以desu结尾,就讲desu改为nanodesu输出,否则在原有字符串的基础上多输出nanodesu。

#include<stdio.h>
#include<string.h>
char s[207],ss[207];
int main()
{
    int n;
    scanf("%d",&n);
    for(int cas=1;cas<=n;cas++)
    {
        scanf("%s",s);
        int len=strlen(s),a=0;
        for(int i=len-4;i<len;i++)
            ss[a++]=s[i];
        printf("Case #%d: ",cas);
        if(strcmp(ss,"desu")==0)
        {
            for(int i=0;i<len-4;i++)
                printf("%c",s[i]);
            printf("nanodesu\n");
        }
        else
            printf("%snanodesu\n",s);
    }
    return 0;
}


 

点击打开链接

 

A Bit Fun

Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 625    Accepted Submission(s): 381


Problem Description
There are n numbers in a array, as a0, a1 ... , an-1, and another number m. We define a function f(i, j) = ai|ai+1|ai+2| ... | aj . Where "|" is the bit-OR operation. (i <= j)
The problem is really simple: please count the number of different pairs of (i, j) where f(i, j) < m.
 


 

Input
The first line has a number T (T <= 50) , indicating the number of test cases.
For each test case, first line contains two numbers n and m.(1 <= n <= 100000, 1 <= m <= 230) Then n numbers come in the second line which is the array a, where 1 <= ai <= 230.
 


 

Output
For every case, you should output "Case #t: " at first, without quotes. Thet is the case number starting from 1.
Then follows the answer.
 


 

Sample Input
  
  
2 3 6 1 3 5 2 4 5 4
 


 

Sample Output
  
  
Case #1: 4 Case #2: 0
 


 

Source
 


 

Recommend
liuyiding
 

 

题意是说给你n个数,这些数之间的运算是或运算,让你找出所有的组合,使得它们得出的答案小于m,注意必须要连续。

 

#include<stdio.h>
int s[100007];
int main()
{
    int cas;
    scanf("%d",&cas);
    int cc=1;
    while(cas--)
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            scanf("%d",&s[i]);
        int count=0;
        for(int i=1;i<=n;i++)
        {
            int a=s[i];
            for(int j=i+1;j<=n;j++)
            {
                a=a|s[j];
                if(a>=m)break;
                    count++;
            }
        }
        for(int i=1;i<=n;i++)
            if(s[i]<m)
                count++;
        printf("Case #%d: %d\n",cc++,count);
    }
    return 0;
}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值