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 星际旅行

    待更

  • 相关阅读:
    Yield Usage Understanding
    Deadclock on calling async methond
    How to generate file name according to datetime in bat command
    Run Unit API Testing Which Was Distributed To Multiple Test Agents
    druid的关键参数+数据库连接池运行原理
    修改idea打开新窗口的默认配置
    spring boot -thymeleaf-url
    @pathvariable和@RequestParam的区别
    spring boot -thymeleaf-域对象操作
    spring boot -thymeleaf-遍历list和map
  • 原文地址:https://www.cnblogs.com/yzm10/p/12502947.html
Copyright © 2011-2022 走看看