2015苏州大学ACM-ICPC集训队选拔赛(2) 1001 1003 1010
草爷要的榜
Problem Description
苏州大学代表队又勤奋地开始了训练。
今天开了一场时长5小时的组队训练赛,苏州大学的n(1<=n<=100)支校队奋力拼(hua)搏(shui),每一支队伍都做出来了k(1<=k<=10)道题,但是因为罚时有差别,所以名次也不同。
现在给出了每个队伍的AC情况,请按照罚时从少到多输出每个队伍的罚时。
排名规则如下:
1、如果AC题数不同,则过题目数多的队伍名次靠前;
2、如果AC题数相同,则按照罚时多少,总罚时少的队伍名次靠前。
罚时计算规则如下:
1、每个题目只有AC时它的罚时才计入总罚时,总罚时为每个AC题目的基础罚时和加罚时的和;
2、每个AC了的题目的基础罚时是从比赛开始到这题AC所经过的分钟数;
3、每个AC了的题目的加罚时是:第一次AC之前的每个错误提交(包括WA、RE、TLE、MLE等)会额外增加20分钟加罚时。
今天开了一场时长5小时的组队训练赛,苏州大学的n(1<=n<=100)支校队奋力拼(hua)搏(shui),每一支队伍都做出来了k(1<=k<=10)道题,但是因为罚时有差别,所以名次也不同。
现在给出了每个队伍的AC情况,请按照罚时从少到多输出每个队伍的罚时。
排名规则如下:
1、如果AC题数不同,则过题目数多的队伍名次靠前;
2、如果AC题数相同,则按照罚时多少,总罚时少的队伍名次靠前。
罚时计算规则如下:
1、每个题目只有AC时它的罚时才计入总罚时,总罚时为每个AC题目的基础罚时和加罚时的和;
2、每个AC了的题目的基础罚时是从比赛开始到这题AC所经过的分钟数;
3、每个AC了的题目的加罚时是:第一次AC之前的每个错误提交(包括WA、RE、TLE、MLE等)会额外增加20分钟加罚时。
Input
多组数据(<=100),请读到文件结尾。
每组数据以两个整数n和k开头;
接下来为n支队伍的过题时间以及提交次数,每支队伍占两行:
每支队伍第一行为k个时间,格式(xx:yy),第i个时间表示第i个题AC时间为xx小时yy分钟。
每支队伍第二行为k个整数,第i个整数表示第i个题总提交次数a[i](1<=a[i]<=200,总次数包括一次AC提交);
数据保证总罚时在32位整数内,每支队伍某题AC之后不再提交该题。
每组数据以两个整数n和k开头;
接下来为n支队伍的过题时间以及提交次数,每支队伍占两行:
每支队伍第一行为k个时间,格式(xx:yy),第i个时间表示第i个题AC时间为xx小时yy分钟。
每支队伍第二行为k个整数,第i个整数表示第i个题总提交次数a[i](1<=a[i]<=200,总次数包括一次AC提交);
数据保证总罚时在32位整数内,每支队伍某题AC之后不再提交该题。
Output
对于每组输入,输出一行:
按照本场训练赛的罚时从少到多输出各个队伍的总罚时(分钟数),每两个数间用一个空格隔开。
按照本场训练赛的罚时从少到多输出各个队伍的总罚时(分钟数),每两个数间用一个空格隔开。
Sample Input
3 5 00:59 00:25 04:16 00:12 03:57 1 2 1 1 3 01:03 00:17 02:38 00:22 02:08 1 1 1 1 1 00:44 00:29 03:42 00:20 01:53 1 1 3 1 1 1 7 00:27 01:58 03:15 00:47 02:44 04:13 02:39 2 1 4 4 1 7 4 4 3 02:12 00:42 00:24 4 1 1 01:27 03:03 00:31 1 2 1 00:58 00:33 00:18 1 1 1 04:05 00:41 01:27 6 2 4
Sample Output
388 468 649 1283 109 258 321 553
Author
一个很简单的模拟,注意一下时间的换算就好
#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 INF 0x3f3f3f3f
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define ULL unsigned long long
using namespace std;
struct P
{
// string s;
int sum;
} L[100000];
int i,j;
int n,m;
int k;
int M,s;
int FA;
bool cmd(P x,P y)
{
return x.sum<y.sum;
}
int main ()
{
while(cin>>n>>k)
{
for(j=0;j<n;j++)
{
int num=0;
for(i=0; i<k; i++)
{
scanf("%d:%d",&M,&s);
num+=M*60+s;
}
for(i=0; i<k; i++)
{
cin>>FA;
num+=(FA-1)*20;
}
L[j].sum=num;
// cout<<L[j].sum<<endl;
}
sort(L,L+n,cmd);
for(i=0;i<n;i++)
{
if(i!=n-1)
{
printf("%d ",L[i].sum);
}
else
{
printf("%d\n",L[i].sum);
}
}
}
return 0;
}
草爷要的福利题
Problem Description
苏州大学各校队都在忙碌于出校赛题目,控制难度成了最头疼的事情。为了给各位参赛选手送福利,我们出了n(1<=n<=100)道题目,准备选择一道最适合新生的题目来作为福利题。
每道题目有两个指标,思想简易度系数x和代码简易度系数y(-10000<=x,y<=10000);我们相应地制定了两个参数:思想参数a和代码参数b(-10000<=a,b<=10000)。因此每道题目的合适程度 z=x*a+y*b;我们准备选择一道合适程度最高的题目作为我们的选择。请问我们选择的题目的合适程度是多少呢。
每道题目有两个指标,思想简易度系数x和代码简易度系数y(-10000<=x,y<=10000);我们相应地制定了两个参数:思想参数a和代码参数b(-10000<=a,b<=10000)。因此每道题目的合适程度 z=x*a+y*b;我们准备选择一道合适程度最高的题目作为我们的选择。请问我们选择的题目的合适程度是多少呢。
Input
多组数据(<=1000),请读到文件结尾。
每组数据第一行为三个整数n,a,b,含义如题目描述。
接下来n行每行两个数x和y表示这道题的思想简易度系数和代码简易度系数。
每组数据第一行为三个整数n,a,b,含义如题目描述。
接下来n行每行两个数x和y表示这道题的思想简易度系数和代码简易度系数。
Output
对于每组数据输出一个整数,表示我们选择的题目的合适程度。每组数据输出占一行。
Sample Input
1 1 1 2 3 2 -2 1 1 1 1 -1
Sample Output
5 -1
Author
#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 INF 0x3f3f3f3f
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define ULL unsigned long long
using namespace std;
int n,a,b;
int x,y;
int i,j;
int main()
{
while(cin>>n>>a>>b)
{
int MAX=-inf;
for(i=0;i<n;i++)
{
cin>>x>>y;
MAX=max(MAX,a*x+b*y);
}
cout<<MAX<<endl;
}
return 0;
}
高能数学题
Problem Description
给定一个正整数n,判断该数是不是3的倍数
Input
输入数据有多组(约300组)。每行一个正整数n(0<n<=10^10000)
Output
对于每组输入数据,输出一行"Yes"或"No"(不包括引号),表示n是不是3的倍数
Sample Input
1 123456789 2333333333333333333333333333333333333333
Sample Output
No Yes No
Author
每位数相加求和,看是否整除3即可
#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 INF 0x3f3f3f3f
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define ULL unsigned long long
using namespace std;
string s;
int main()
{
while(cin>>s)
{
int sum=0;
for(int i=0;i<s.length();i++)
{
sum+=s[i]-'0';
}
// cout<<sum<<endl;
if(sum%3==0)
{
puts("Yes");
}
else
{
puts("No");
}
}
return 0;
}

浙公网安备 33010602011771号