Kattis - Association for Computing Machinery
Association for Computing Machinery
ACM (Association for Computing Machinery) organizes the International Collegiate Programming Contest (ICPC) worldwide every year.
In the ICPC, a team of three students is presented with a problem set that contains NN problems1 of varying types and difficulty levels. The teams are not told which problems are easier (or harder). As there is only one single computer per team, each team has to decide which one of the N!N! possible problem solving orders that the team wants to use. This is called the “contest strategy” and teams who are expecting to do well in an ICPC should use the optimal contest strategy for their team.
However, when a contest has ‘First to Solve Problem [‘A’/‘B’/.../‘A’+(N−1)+(N−1)] award’ – like this ICPC SG Regional Contest 15 – sponsored by Kattis, then some of the teams may throw the optimal contest strategy out of the window in order to grab the (smaller) award.
Input
The input describes a hypothetical scenario of a 300300 minute contest.
The first line contains two non-negative integers 2≤N≤132≤N≤13 and 0≤p≤N−10≤p≤N−1. The integer NN describes the number of problems in the problem set of this ACM ICPC and the integer pp is a 0-based index that describes the problem id that your team wants to solve first before attempting the other N−1N−1 problems.
The next line contains NN integers in the range between 11 and 999999, inclusive. Each integer ii describes the estimated number of minutes to solve problem id ii according to your team. You have discussed with your team mates that your team will not put the same estimation for two different problems, so there is no ambiguity.
As an ACM ICPC duration is 55 hours, or 300300 minutes, any estimation of strictly larger than 300300 minutes for a certain problem jj basically says that you estimate that your team cannot solve problem jj during contest time.
In this problem, you can assume that all your team’s estimations are perfectly accurate, i.e. if your team estimates that your team needs 3030 minutes to solve problem kk, 270270 minutes to solve another problem ll, and have no idea how to solve the rest, and decides to solve problem kk first followed by ll, then after 3030 minutes have elapsed from the start of contest, your team really gets an ‘Accepted’ verdict from Kattis for problem kk, immediately switches to problem ll for the next 270270 minutes, gets another ‘Accepted’ verdict from Kattis for problem ll at exactly 300300 minutes (in this problem, submission at minute 300300 is a valid submission2). Thus you have 22 Accepted problems and the total penalty time of 30+300=33030+300=330 minutes as per the ICPC rules.
Output
Print two integers Num_ACNum_AC and Penalty_TimePenalty_Time separated by a single space in one line.
Num_ACNum_AC is the highest number of problems that your team can solve and Penalty_TimePenalty_Time is the lowest penalty minutes that your team can get in order to solve Num_ACNum_AC problems in this 300300 minutes ACM ICPC if your team insists to solve problem pp first from the start of the contest and then use the remaining time to work on the other N−1N−1 problems.
For the example scenario above, if your team decides to solve problem ll first followed by kk, then your team still solves Num_AC=2Num_AC=2 Accepted problems, but with the total penalty of 270+300=570270+300=570 minutes.
| Sample Input 1 | Sample Output 1 |
|---|---|
7 0 |
2 330 |
| Sample Input 2 | Sample Output 2 |
|---|---|
7 1 |
2 570 |
| Sample Input 3 | Sample Output 3 |
|---|---|
7 2 |
0 0 |
| Sample Input 4 | Sample Output 4 |
|---|---|
3 0 |
2 301 |
Footnotes
- The largest number of problems in an official ACM ICPC to date is probably the recent ACM ICPC World Finals in Marrakesh, Morocco where N=13N=13.
- To simplify this problem a bit, we ignore seconds although the last submission must be done at 0404 hours, 5959minutes, and 5959 seconds (or minute 299299) in order to be considered valid.
题意
解释一下样例,输入n,p,n代表总题数,p代表第一个开始做第p题(位置从0开始),后面输入的是每一道题至少需要的时间,做了第一题后,选择最少需要的时间加上累积的时间<=300的话就是可做的,因为一道题的限制时间是300,问做出来的总题数和总时间。
思路
首先判断a[p]是否<=300,然后把a[0]与a[p]替换,将数组排序,先存下做出每一题的总时间,然后遍历判断
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, p;
while(cin >> n >> p) {
int a[n];
int nn = , pp = , cnt = ;
for(int i = ; i < n; i++)
cin >> a[i];
if(a[p] <= ) {
int tmp = a[];
a[]=a[p];
a[p]=tmp;
sort(a+, a + n);
for(int i=;i<n;i++){
a[i]+=a[i-];
}
for(int i = ; i < n; i++) {
if(a[i] <= ) {
pp += a[i];
cnt++;
} else if(a[i] > )
break;
}
}
cout << cnt << " " << pp << endl;
}
}
Kattis - Association for Computing Machinery的更多相关文章
- 【AI】Computing Machinery and Intelligence - 计算机器与智能
[论文标题] Computing Machinery and Intelligence (1950) [论文作者] A. M. Turing (Alan Mathison Turing) [论文链接] ...
- 图灵的文章“Computing machinery and intelligence”译文
图灵奠基AI的力作“Computing machinery and intelligence”全文译完,摘自http://blog.sciencenet.cn/blog-2322490-112266 ...
- 数据结构与算法 Big O 备忘录与现实
不论今天的计算机技术变化,新技术的出现,所有都是来自数据结构与算法基础.我们需要温故而知新. 算法.架构.策略.机器学习之间的关系.在过往和技术人员交流时,很多人对算法和架构之间的关系感 ...
- 现在开始(Do It Now)
现在开始(Do It Now) 很多年前读大学的时候,我决定制定一个计划挑战自己:只用三个学期完成其他人通常花费四年的课程,能否毕业.这篇文章(此文为翻译)详细的说明了我在成功实现该目标过程中的所有时 ...
- The BKS System for the Philco-2000 学习笔记
最近因为学业需要阅读这一篇论文......一把鼻涕一把泪地翻了一边以求更好地理解,谁让我英语渣呢....有很多地方翻译得感觉还是有问题或者不流畅,还请大家多多指教. The BKS System fo ...
- Understand User's Intent from Speech and Text
http://research.microsoft.com/en-us/projects/IntentUnderstanding/ Understanding what users like to d ...
- 关于ACM,关于CSU
原文地址:http://tieba.baidu.com/p/2432943599 前言: 即将进入研二,ACM的事情也渐渐远去,记忆终将模糊,但那段奋斗永远让人热血沸腾.开个贴讲讲ACM与中南的故事, ...
- Graph Cut and Its Application in Computer Vision
Graph Cut and Its Application in Computer Vision 原文出处: http://lincccc.blogspot.tw/2011/04/graph-cut- ...
- How do I learn machine learning?
https://www.quora.com/How-do-I-learn-machine-learning-1?redirected_qid=6578644 How Can I Learn X? ...
随机推荐
- 【udacity】机器学习-回归
Evernote Export 1.什么是回归? regression 在监督学习中,包括了输入和输出的样本,在此基础上,我们能够通过新的输入来表示结果,映射到输出 输出包含了离散输出和连续输出 2. ...
- 前端开发—CSS
CSS 基础概念 致命三问: 它是什么? 层叠样式表,主要作用是对html标签进行装饰. 它的作用:再 html 框架的基础上 ,对标签内容做美化工作. 注释方法:/*单行注释*/ 多行注释同理与h ...
- 前端html之------>Table实现表头固定
文章来源于:https://www.cnblogs.com/dacuotecuo/p/3657779.html,请尊重原创,转载请注明出处. 说明:这里主要实现了表头的固定和上下滚动的滑动实现:时间的 ...
- 网络教程(12) TCP协议
IP协议的限制 IP协议需要 datalink帧来包装它 Ethernet或者PPP 一般都有1500byte字节或者大小的限制 可能会出现的问题 Packet loss – retransmit R ...
- Project Euler 18 Maximum path sum I( DP and 记忆化搜索 )
题意:求从三角形顶端出发到达底部,所能够得到的最大路径和 方法一:记忆化搜索 /************************************************************ ...
- 训练1-o
给出2个N * N的矩阵M1和M2,输出2个矩阵相乘后的结果. Input 第1行:1个数N,表示矩阵的大小(2 <= N <= 100)第2 - N + 1行,每行N个数,对应M1的1行 ...
- Netty、NIO、多线程
一:Netty.NIO.多线程? 时隔很久终于又更新了!之前一直迟迟未动也是因为积累不够,后面比较难下手.过年期间@李林锋hw发布了一个Netty5.0架构剖析和源码解读,看完也是收获不少.前面的文章 ...
- java深入的单例模式
在GoF的23种设计模式中,单例模式是比较简单的一种.然而,有时候越是简单的东西越容易出现问题.下面就单例设计模式详细的探讨一下. 所谓单例模式,简单来说,就是在整个应用中保证只有一个类的实例存在 ...
- String 字符串的追加,数组拷贝
package chengbaoDemo; import java.util.Arrays; /** *需求:数组的扩容以及数据的拷贝 *分析:因为String的实质是以字符数组存储的,所以字符串的追 ...
- CF909A Generate Login
CF909A Generate Login 题意翻译 给定两个用空格分隔的字符串,分别取两字符串的任意非空前缀,将两前缀合并为一个新的字符串,求可行字典序最小的字符串. 题目描述 The prefer ...