首页 > 其他 > 详细

cf 282 div2

时间:2014-12-15 02:02:11      阅读:228      评论:0      收藏:0      [点我收藏+]

这一场就是一个杯具,但是不得不说题目出得很有意思,质量很棒

A没的说

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int num[11];
int main(){
    num[0] = 2;
    num[1] = 7;
    num[2] = 2;
    num[3] = 3;
    num[4] = 3;
    num[5] = 4;
    num[6] = 2;
    num[7] = 5;
    num[8] = 1;
    num[9] = 2;
    char str[3];
    while(cin>>str){
        int n;
        n=num[str[0]-‘0‘]*num[str[1]-‘0‘];
        cout<<n<<endl;
    }
    return 0;
}

?

B题我一直在思考如何把一个数分解为素数因子乘积的形式,实际上直接枚举0---sqrt的因子就可以了!

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
typedef long long ll;
int main(){
    ll a,b,i,j,k,res;
    while(scanf("%I64d%I64d",&a,&b)!=EOF){
        if(a == b){
            printf("infinity\n");
            continue;
        }
        a -= b;
        if(a < 0){
            printf("0\n");
            continue;
        }
        res = 0;
        ll q = sqrt(a);
        for(i = 1; i <= q; i ++){
            if(a % i== 0){
                if(i>b){
                    res++;
                }
                if(a/i>b){
                    res++;
                }
            }
        }
        if(q > b && q*q == a){
            res --;
        }
        printf("%I64d\n",res);
    }
    return 0;
}

?

C题,直接把前面的#设成1个),把累积下来的(算到最后一个#上,最后注意要检查一遍括号是否匹配成功

#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<cmath>
using namespace std;
char str[100010];
int num[100010];
int main(){
    int p, i, j, k, len, ans;
    while(cin>>str){
        len = strlen(str);
//        str[len] = ‘#‘;
        p = 0;
        k = 0;
        bool flag = 1;
        for(i = 0; i< len; i++){
            if(str[i] == ‘(‘){
                p ++;
            }else{
                if(str[i] == ‘)‘){
                    if(p<=0){
                        flag = 0;
                        break;
                    }else{
                        p --;
                    }
                }else{ ///// ‘#‘
                    k ++;
                    if(p<=0){
                        flag = 0;
                        break;
                    }else{
                        p --;
                    }
                }
            }
        }
        if(!flag){
            puts("-1");
            continue;
        }
        flag = 1;
        p = 0;
        for(i = 0; i < len; i ++){
            if(str[i] == ‘(‘){
                p ++;
            }
            else{
                p --;
            }
        }
        ans = p + 1;
        p = 0;
        j = 0;
        for(i = 0; i < len; i ++){
            if(str[i] == ‘(‘){
                p ++;
            }
            else{
                if(str[i] == ‘)‘){
                    p --;
                }else{
                    j ++;
                    if(j != k){
                        p --;
                    }else{
                        p -= ans;
                    }
                }
            }
            if(p<0){
                flag = 0;
                break;
            }
        }
        if(!flag||p!=0){
            puts("-1");
            continue;
        }
        for(i = 0; i < k - 1; i ++){
            printf("%d\n",1);
        }printf("%d\n",ans);
    }
    return 0;
}

?

?

cf 282 div2

原文:http://bbezxcy.iteye.com/blog/2166245

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!