zoukankan      html  css  js  c++  java
  • CCF-CSP刷题库11-20

    CCF-CSP刷题库11-20

    第十一次认证

    201709-1 打酱油

    #include<bits/stdc++.h>
    #define MAX 1005 
    #define MOD 1000000007
    using namespace std;
    typedef long long ll;
    
    int main()
    {
        int t,n,m,x,y,i,j,k;
        scanf("%d",&n);
        int ans=0;
        while(n){
            if(n>=50){
                n-=50;
                ans+=7;
            }
            else if(n>=30){
                n-=30;
                ans+=4;
            }
            else{
                ans+=n/10;
                n=0;
            }
        }
        printf("%d
    ",ans);
        return 0;
    }
    View Code

    201709-2 公共钥匙盒

    //枚举时间

    #include<bits/stdc++.h>
    #define MAX 1005 
    #define MOD 1000000007
    using namespace std;
    typedef long long ll;
    
    struct Node{
        int key,x,y;
    }a[MAX];
    
    int b[MAX];
    
    bool cmp(Node a,Node b){
        if(a.y==b.y) return a.key<b.key;
        return a.y<b.y;
    }
    int main()
    {
        int t,n,m,x,y,i,j,k;
        scanf("%d%d",&n,&m);
        for(i=1;i<=n;i++){
            b[i]=i;
        }
        t=0;
        for(i=1;i<=m;i++){
            scanf("%d%d%d",&a[i].key,&a[i].x,&a[i].y);
            a[i].y+=a[i].x;
            t=max(t,a[i].y);
        }
        sort(a+1,a+m+1,cmp);
        for(i=1;i<=t;i++){  //枚举时间 
            for(j=1;j<=m;j++){  //先还 
                if(a[j].y==i){
                    for(k=1;k<=n;k++){
                        if(!b[k]){
                            b[k]=a[j].key;
                            break;
                        }
                    }
                }
            }
            for(j=1;j<=m;j++){  //后取 
                if(a[j].x==i){
                    for(k=1;k<=n;k++){
                        if(b[k]==a[j].key){
                            b[k]=0;
                            break;
                        }
                    }
                }
            }
        }
        for(i=1;i<=n;i++){
            if(i>1) printf(" ");
            printf("%d",b[i]);
        }
        return 0;
    }
    View Code

    201709-3 JSON查询

    201709-4 通信网络

    //正反向存图遍历

    #include<bits/stdc++.h>
    #define MAX 1005 
    #define MOD 1000000007
    using namespace std;
    typedef long long ll;
    
    vector<int> v[MAX],rv[MAX];
    int b[MAX],rb[MAX];
    
    void dfs(int x){
        b[x]=1;
        for(int i=0;i<v[x].size();i++){
            int to=v[x][i];
            if(b[to]) continue;
            dfs(to);
        }
    }
    void rdfs(int x){
        rb[x]=1;
        for(int i=0;i<rv[x].size();i++){
            int to=rv[x][i];
            if(rb[to]) continue;
            rdfs(to);
        }
    }
    int main()
    {
        int t,n,m,x,y,i,j,k;
        scanf("%d%d",&n,&m);
        while(m--){
            scanf("%d%d",&x,&y);
            v[x].push_back(y);
            rv[y].push_back(x);
        }
        int ans=0;
        for(i=1;i<=n;i++){
            memset(b,0,sizeof(b));
            memset(rb,0,sizeof(rb));
            dfs(i);
            rdfs(i);
            int f=0;
            for(j=1;j<=n;j++){
                if(b[j]||rb[j]) continue;
                f=1;
                break;
            }
            if(f==0) ans++;
        }
        printf("%d
    ",ans);
        return 0;
    }
    View Code

    第十二次认证

    201712-1 最小差值

    #include<bits/stdc++.h>
    #define MAX 1005 
    #define MOD 1000000007
    using namespace std;
    typedef long long ll;
    
    int a[MAX];
    
    int main()
    {
        int t,n,m,x,y,i,j,k;
        scanf("%d",&n);
        for(i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        int ans=INT_MAX;
        for(i=1;i<n;i++){
            for(j=i+1;j<=n;j++){
                ans=min(ans,abs(a[i]-a[j]));
            }
        }
        printf("%d
    ",ans);
        return 0;
    }
    View Code

    201712-2 游戏

    //vector存储%处理环形报数删点

    #include<bits/stdc++.h>
    #define MAX 1005 
    #define MOD 1000000007
    using namespace std;
    typedef long long ll;
    
    vector<int> v;
    
    int main()
    {
        int t,n,m,x,y,i,j,k;
        scanf("%d%d",&n,&k);
        for(i=1;i<=n;i++){
            v.push_back(i);
        }
        int c=0,p=-1;
        while(v.size()>1){
            c++;p++;
            p%=v.size();
            if(c%k==0||c%10==k){
                v.erase(v.begin()+p);
                p--;
            }
        }
        printf("%d
    ",v[0]);
        return 0;
    }
    View Code

    201712-3 Crontab

    201712-4 行车路线

    //80分(错误),带权边->优先队列+bfs,用b[pos][0..1两种状态]记录当前最优解,只能用更小b更新

    #include<bits/stdc++.h>
    #define MAX 505 
    #define MOD 1000000007
    using namespace std;
    typedef long long ll;
    
    struct Node{
        int x,s,p;
        friend bool operator<(Node a,Node b){
            if(a.s==b.s) return a.p>b.p;
            return a.s>b.s;
        }
    }no;
    priority_queue<Node> q;
    int a[MAX][MAX];
    int p[MAX][MAX];
    int b[MAX][2];
    
    int main()
    {
        int t,n,m,x,y,z,i,j,k;
        scanf("%d%d",&n,&m);
        memset(a,-1,sizeof(a));
        while(m--){
            scanf("%d%d%d%d",&t,&x,&y,&z);
            a[x][y]=z;a[y][x]=z;
            p[x][y]=t;p[y][x]=t;
        }
        for(i=2;i<=n;i++){
            b[i][0]=1000001;
            b[i][1]=1000001;
        }
        b[1][0]=0;b[1][1]=0;
        no.x=1;no.s=0;no.p=0;
        q.push(no);
        int ans=1000001;
        while(q.size()){
            Node f=q.top();
            q.pop();
            for(i=1;i<=n;i++){
                if(a[f.x][i]==-1) continue;
                ll ts;
                if(p[f.x][i]==0) ts=f.s+a[f.x][i];
                else{
                    if(f.p==0) ts=f.s+a[f.x][i]*a[f.x][i];
                    else ts=(sqrt(f.s)+a[f.x][i])*(sqrt(f.s)+a[f.x][i]);
                }
                if(ts>=b[i][p[f.x][i]]) continue;
                b[i][p[f.x][i]]=ts;
                if(i==n){
                    ans=min(ans,(int)ts);
                    continue;
                }
                no.x=i;no.s=ts;no.p=p[f.x][i];
                q.push(no);
            }
        }
        printf("%d
    ",ans);
        return 0;
    }
    View Code

    第十三次认证

    201803-1 跳一跳

    #include<bits/stdc++.h>
    #define MAX 1005 
    #define MOD 1000000007
    using namespace std;
    typedef long long ll;
    
    int main()
    {
        int t,n,m,x,y,i,j,k;
        int c=0,ans=0;
        while(~scanf("%d",&n)&&n>0){
            if(n==1){
                c=0;
                ans++;
            }
            else{
                c+=2;
                ans+=c;
            }
        }
        printf("%d
    ",ans);
        return 0;
    }
    View Code

    201803-2 碰撞的小球

    //规律可视为小球间无碰撞(交叉通行),最后按相对大小的初始顺序输出

    #include<bits/stdc++.h>
    #define MAX 105 
    #define MOD 1000000007
    using namespace std;
    typedef long long ll;
    
    struct Node{
        int x,i;
    }a[MAX],b[MAX];
    
    bool cmp1(Node a,Node b){
        return a.x<b.x;
    }
    bool cmp2(Node a,Node b){
        return a.i<b.i;
    }
    int main()
    {
        int t,l,n,m,x,y,i,j,k;
        scanf("%d%d%d",&n,&l,&t);
        for(i=1;i<=n;i++){
            scanf("%d",&a[i].x);
            a[i].i=i;
            if(a[i].x+t<=l){
                b[i].x=a[i].x+t;
                continue;
            }
            int p=t-(l-a[i].x);
            if((p/l)&1){
                b[i].x=p%l;
            }
            else{
                b[i].x=l-p%l;
            }
        }
        sort(a+1,a+n+1,cmp1);
        sort(b+1,b+n+1,cmp1);
        for(i=1;i<=n;i++){
            b[i].i=a[i].i;
        }
        sort(b+1,b+n+1,cmp2);
        for(i=1;i<=n;i++){
            if(i>1) printf(" ");
            printf("%d",b[i].x);
        }
        return 0;
    }
    View Code

    201803-3 URL映射

    201803-4 棋局评估

    第十四次认证

    201809-1 卖菜

    201809-2 买菜

    201809-3 元素选择器

    201809-4 再卖菜

    第十五次认证

    201812-1 小明上学

    201812-2 小明放学

    201812-3 CIDR合并

    201812-4 数据中心

    第十六次认证

    201903-1 小中大

    201903-2 二十四点

    201903-3 损坏的RAID5

    201903-4 消息传递接口

    第十七次认证

    201909-1 小明种苹果

    201909-2 小明种苹果(续)

    201909-3 字符画

    201909-4 推荐系统

    第十八次认证

    201912-1 报数

    201912-2 回收站选址

    201912-3 化学方程式

    201912-4 区块链

    第十九次认证

    第二十次认证

    202009-1 称检测点查询

    #include<bits/stdc++.h>
    #define MAX 1005
    #define MOD 1000000007 
    using namespace std;
    typedef long long ll;
    
    struct Node{
        double x,y,s;
        int i;
    }a[MAX];
    bool cmp(Node a,Node b){
        if(a.s==b.s) return a.i<b.i;
        return a.s<b.s;
    }
    int main()
    {
        int t,n,m,i,j,k;
        double x,y;
        scanf("%d%lf%lf",&n,&x,&y);
        for(i=1;i<=n;i++){
            scanf("%lf%lf",&a[i].x,&a[i].y);
            a[i].s=sqrt((a[i].x-x)*(a[i].x-x)+(a[i].y-y)*(a[i].y-y));
            a[i].i=i;
        }
        sort(a+1,a+n+1,cmp);
        for(i=1;i<=3;i++){
            printf("%d
    ",a[i].i);
        }
        return 0;
    }
    称检测点查询

    202009-2 风险人群筛查

    #include<bits/stdc++.h>
    #define MAX 1005
    #define MOD 1000000007 
    using namespace std;
    typedef long long ll;
    
    int xl,yd,xr,yu;
    
    int pd(int x,int y){
        if(xl<=x&&x<=xr&&yd<=y&&y<=yu) return 1;
        return 0;
    }
    int main()
    {
        int n,k,t,m,i,j;
        scanf("%d%d%d%d%d%d%d",&n,&k,&t,&xl,&yd,&xr,&yu);
        int cjg=0,cdl=0;
        for(i=1;i<=n;i++){
            int x,y;
            int c=0,fjg=0,fdl=0;
            for(j=1;j<=t;j++){
                scanf("%d%d",&x,&y);
                if(pd(x,y)) c++;
                else c=0;
                if(c>0) fjg=1;
                if(c>=k) fdl=1;
            }
            cjg+=fjg;
            cdl+=fdl;
        }
        printf("%d
    %d
    ",cjg,cdl);
        return 0;
    }
    风险人群筛查

    202009-3 点亮数字人生

    202009-4 星际旅行

    待更

  • 相关阅读:
    what are Datatypes in SQLite supporting android
    Version of SQLite used in Android?
    使用(Drawable)资源———ShapeDrawable资源
    使用(Drawable)资源——LayerDrawable资源
    使用(Drawable)资源——StateListDrawable资源
    使用(Drawable)资源——图片资源
    数组(Array)资源
    使用字符串、颜色、尺寸资源
    资源的类型及存储方式——使用资源
    资源的类型及存储方式——资源的类型以及存储方式
  • 原文地址:https://www.cnblogs.com/yzm10/p/12502947.html
Copyright © 2011-2022 走看看