2015苏州大学ACM-ICPC集训队选拔赛(1) 1001 1002 1010

签到题

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 180   Accepted Submission(s) : 92

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

经常有人问我,ACM是什么,有什么意义。
我回答,大概是一个逼格很高的比赛吧。

ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由国际计算机学会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30多年的发展,ACM国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。赛事目前由IBM公司赞助。
-来自百度百科

而如今面临退役,一切都快要结束的时候,却发现自己已经逐渐习惯了这种氛围,ACM这一路走来,其中艰辛也只有自己知道,有过快乐和失望,也有期待和迷茫。从一开始奢望ACM带给我什么,到最后走的时候却发现自己更喜欢的是这过程。

我记得当年我做校赛的第一题,其中就有一句ACM就像是一个游戏,如今看来,似乎也是。在ACMer心里,ACM是一场游戏,没有爱过的人,不会懂。

如今将此题献给你们,希望未来的路上你们可以风雨无阻,努力去追寻自己喜欢的事物。所谓梦想,不是一开始的勇不可当,而是永不停息的疯狂。

本题作为签到题,无输入,请输出题目描述中ACM出现的次数,以换行结束。

Author

xiaoxin
数不清楚?ctrl+F 
#include<stdio.h>
//#include<bits/stdc++.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<sstream>
#include<set>
#include<queue>
#include<vector>
#include<algorithm>
#include<limits.h>
#define inf 0x3fffffff
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
using namespace std;
int main()
{
    printf("12
");
    return 0;
}

  

丢失的数字

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 224   Accepted Submission(s) : 50

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

给出m个数字,请你找出1到n中没有出现在这m个数字中的数字个数。

Input

多组输入,每组输入第一行n和m,接下来一行m个数字a[i]。
数据范围:1<=n,m<=100000,-1e9<=a[i]<=1e9。

Output

每组输出一行,表示丢失的数字的个数。

Sample Input

5 3
1 3 4
4 6
1 3 8 3 11 12

Sample Output

2
2

Author

xiaoxin
使用一个map标记一下,然后出现的去掉标记就好
#include<stdio.h>
//#include<bits/stdc++.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<sstream>
#include<set>
#include<queue>
#include<map>
#include<vector>
#include<algorithm>
#include<limits.h>
#define inf 0x3fffffff
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
using namespace std;
int a;
map<int,int> q;
int main()
{
    int n,m;
    int i;
    int ans;
    while(cin>>n>>m)
    {
        ans=0;
        for(i=1;i<=n;i++)
        {
            q[i]=1;
        }
       for(i=0;i<m;i++)
       {
           cin>>a;
           q[a]=0;
       }
       map<int,int>::iterator it;
       for(it=q.begin();it!=q.end();it++)
       {
        //   cout<<it->first<<" "<<it->second<<endl;
           if(it->second!=0)
           {
               ans++;
           }
       }
       cout<<ans<<endl;
       q.clear();
    }
    return 0;
}

  

投票

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 65   Accepted Submission(s) : 40

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

苏州大学ACM-ICPC实验室一年一度的最美猫咪的选举又到了,实验室的M位同学每人可以投一票,他们会将自己最喜欢的猫咪的名字写在纸上,最终得票数超过总票数一半的猫咪将获胜。因为某种原因,我们保证选举一定会产生一个赢家。

Input

第一行一个数T,表示测试数据组数(1 <= T <= 100)
对于每组测试数据,第一行是一个整数M,表示参加选举的同学的人数(1 <= M <= 1000)
接下来M行,每行一个字符串,表示猫咪的名字,每个字符串只包含小写字母,而且每个字符串的长度不超过10

Output

对于每组测试数据输出一行,表示获胜的猫咪的名字。

Sample Input

2
3
zhuzhu
zhuzhu
xiaoxin
2
zhuzhu
zhuzhu

Sample Output

zhuzhu
zhuzhu

Author

Tong Wei

 也是用map存一下,然后根据题意来就好了,这题和HDU1004题相似

#include<stdio.h>
//#include<bits/stdc++.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<sstream>
#include<set>
#include<queue>
#include<map>
#include<vector>
#include<algorithm>
#include<limits.h>
#define inf 0x3fffffff
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
using namespace std;
map<string,int> q;
int main()
{
    int t;
    string s;
    while(cin>>t)
    {
        while(t--)
        {
            int n;
            int i;
            cin>>n;
            for(i=0; i<n; i++)
            {
                cin>>s;
                q[s]++;
            }
            map<string,int>::iterator it;
            for(it=q.begin(); it!=q.end(); it++)
            {
                // cout<<it->first<<" "<<it->second<<endl;
                if(n%2==0)
                {
                    if(it->second>=(n/2))
                    {
                        cout<<it->first<<endl;
                        break;
                    }
                }
                else
                {
                    if(it->second>=(n/2+1))
                    {
                        cout<<it->first<<endl;
                        break;
                    }
                }
            }
            q.clear();
        }
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/yinghualuowu/p/5076766.html