zoukankan      html  css  js  c++  java
  • poj 3778

    这就是个超级水题……!!!!写一写来纪念一下自己的错误……

    如果某个学生的的成绩是其他俩个或三个学生成绩的和则给予奖励

    直接暴力,所以一开始直接用数组标记两个人或三个人的和,但是忽略了这种情况 20(学生A) =  0 +20(学生A)……

    错误代码……!!!

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <cstdlib>
    
    const int MAXN = 10000 + 10;
    const double ESP = 10e-8;
    const double Pi = atan(1.0) * 4;
    const int INF = 0xffffff;
    const int MOD = 10000007;
    
    using namespace std;
    struct People{
      int s;
      char n[101];
      bool operator < (const People a)const{
          if(strcmp(n,a.n) < 0)
            return 1;
          return 0;
      }
    };
    People a[MAXN];
    bool vis[400];
    int main(){
    //    freopen("input.txt","r",stdin);
        int t;
        scanf("%d",&t);
        int n;
        while(t--){
            scanf("%d",&n);
            memset(vis,0,sizeof(vis));
            for(int i = 0;i < n;i++){
                getchar();
                scanf("%s %d",a[i].n,&a[i].s);
            }
            sort(a,a+n);
            for(int i = 0;i < n;i++){
                for(int j = i+1;j < n;j++){
                    int tt = a[i].s + a[j].s;
                    vis[tt] = 1;
                    for(int k = j+1;k < n;k++){
                        tt = a[i].s + a[j].s + a[k].s;
                        vis[tt] = 1;
                    }
                }
            }
            int cnt = 0;
            for(int i = 0;i < n;i++){
                if(vis[ a[i].s ]){
                    cnt++;
                }
            }
            printf("%d
    ",cnt);
            for(int i = 0;i < n;i++){
                if(vis[ a[i].s ]){
                    printf("%s
    ",a[i].n);
                }
            }
    
        }
        return 0;
    }
    View Code

    正确……

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #include <cstdlib>
    #include <string>
    
    const int MAXN = 25 + 10;
    const double ESP = 10e-8;
    const double Pi = atan(1.0) * 4;
    const int INF = 0xffffff;
    const int MOD = 10000007;
    
    using namespace std;
    struct People{
      int s;
      string n;
    };
    People a[MAXN];
    string str[MAXN];
    int main(){
        //freopen("input.txt","r",stdin);
        int t;
        scanf("%d",&t);
        int n;
        while(t--){
            scanf("%d",&n);
            for(int i = 0;i < n;i++){
                cin >> a[i].n >> a[i].s;
            }
            int cnt = 0;
            for(int i = 0;i < n;i++){
                for(int j = 0;j < n;j++){
                    if(i == j)
                        continue;
                    for(int k = 0;k < n;k++){
                        if(k == i || k == j)
                            continue;
                        if(a[i].s == a[j].s + a[k].s){
                            str[cnt++] = a[i].n;
                            k = n;
                            j = n;
                            break;
                        }
                        for(int l = 0;l < n;l++){
                            if(l == k || l == i || l == j){
                                continue;
                            }
                            if(a[i].s == a[j].s+a[k].s+a[l].s){
                                str[cnt++] = a[i].n;
                                k = n;
                                j = n;
                                l = n;
                                break;
                            }
                        }
                    }
                }
            }
            cout << cnt << endl;
            sort(str,str+cnt);
            for(int i = 0;i < cnt;i++){
                cout << str[i] << endl;
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    shell 重启 tomcat 脚本
    shell 复制/备份文件 脚本
    在 CentOS 上安装 node.js
    架构漫谈(一):什么是架构? -王概凯
    冷静审视人工智能技术的本质 | 一图看懂新一代人工智能知识体系大全
    时代在变
    什么是设计思维Design Thinking——风靡全球的创造力培养方法
    金融即服务(FaaS),将开启场景化金融新格局
    devops工具
    京东金融-供应链金融业务介绍
  • 原文地址:https://www.cnblogs.com/hanbinggan/p/4394485.html
Copyright © 2011-2022 走看看