• 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分钟加罚时。

    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之后不再提交该题。

    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
    ",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;我们准备选择一道合适程度最高的题目作为我们的选择。请问我们选择的题目的合适程度是多少呢。

    Input

    多组数据(<=1000),请读到文件结尾。
    每组数据第一行为三个整数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;
    }
    

      

  • 相关阅读:
    搭建自己的博客(三十一):为评论以及回复添加邮箱提醒
    gl-transitions 【68个转场效果图】
    frei0r-1.7.0 20191207-0d4b342 DLLs
    Win10资源管理器始终使用详细视图模式
    gcc posix sjij for MSYS 9.2.1+
    mingw32-gcc-9.2.1-i686-posix-sjlj-20190904-8ba5c53
    Newtonsoft.Json高级用法
    在线文档预览方案-office web apps
    我的前端学习历程
    我是怎么使用最短路径算法解决动态联动问题的
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/5116132.html
Copyright © 2020-2023  润新知