2013ACM/ICPC亚洲区南京站现场赛——题目重现
GPA http://acm.hdu.edu.cn/showproblem.php?pid=4802
签到题,输入两个表,注意细心点就行了。
#include<cstdio>
#include<cstring>
const int M=;
char s[M],cp[M][M]={"A","A-","B+","B","B-","C+","C","C-","D","D-","F"};
double si[]={,3.7,3.3,,2.7,2.3,,1.7,1.3,1.0,};
int main(){
int n;
while(~scanf("%d",&n)){
double ss=;
int sc=,c;
while(n--){
scanf("%d%s",&c,s);
for(int i=;i<;i++){
if(!strcmp(cp[i],s)){
ss+=si[i]*c;
sc+=c;
break;
}
}
}
if(!sc){
puts("0.00");
continue;
}
printf("%.2f\n",ss/sc);
}
return ;
}
Poor Warehouse Keeper http://acm.hdu.edu.cn/showproblem.php?pid=4803
输入x,y表示最终的数量和总价,初始是1,1.
有两种操作可以选择 一种是 y+1,那么此时x不变,但是单价变大了一些。
另一种选择是 x+1,此时单价不变,但是y = y/x*(x+1) 其中x指的是变化之前的x,也就是说, 总价要变成之前的单价*现在的数量。
综上所诉,单价不变或增大。如果x增大,y增大的是上一次的单价,如果使y增大,则单价变大,那么之后按x时y增大的也快。
为了尽快使1,1达到输入的x,y,贪心的选择先增大y,使得单价变大,因为要达到x,早晚都要按x-1次,那么我们在之前使单价变大,就会使这x-1次带来的y的增加更多。
但是单价有个上限,不能过大,否则x-1次必须按,y有可能超过目标。
最后的做法,对每一次增加x之前,都尽可能的把y增大,也就是把单价增大,增大到不超过最终结果的最大单价以后,增加一次x,然后继续之前的选择。
#include<cstdio>
const double eps=1e-;
int main() {
int x,y;
while(~scanf("%d%d",&x,&y)) {///x是数量,y是总价
if(x>y){ ///数量必须要按x-1次,初始单价1,所以x>y是无法按出的
puts("-1");
continue;
}
double k=(y+-eps)/x; ///最大的单价
int ans=x-; ///按x-1次数量
double tmp=; ///初始y的值
for(int i=;i<=x;i++) {
double t=i*k; ///当前可达到的最大总价
int u=(int)(t-tmp); ///最多按总价的次数
tmp+=u; ///总价加上这么多次数
tmp=tmp*(i+)/i; ///这是按了一下数量
ans+=u; ///这是加上按总价的次数,按数量的x-1次之前已经加了
}
printf("%d\n",ans);
}
return ;
}
end
2013ACM/ICPC亚洲区南京站现场赛——题目重现的更多相关文章
- 2013ACM/ICPC亚洲区南京站现场赛---Poor Warehouse Keeper(贪心)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4803 Problem Description Jenny is a warehouse keeper. ...
- 2013ACM/ICPC亚洲区南京站现场赛-HDU4809(树形DP)
为了这个题解第一次写东西..(我只是来膜拜爱看touhou的出题人的).. 首先以为对称性质..我们求出露琪诺的魔法值的期望就可以了..之后乘以3就是答案..(话说她那么笨..能算出来么..⑨⑨⑨⑨⑨ ...
- hdu4811-Ball(2013ACM/ICPC亚洲区南京站现场赛)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4811 题目描述: Problem Description Jenny likes balls. He ...
- 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)
摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...
- 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)
http://blog.csdn.net/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原 ...
- 2013ACM-ICPC亚洲区南京站现场赛G题
题目大意:一个n维的系统中随机选一个向量(X1,X2,X3,...,Xn),其中0<=Xi<=R,且X1^2+X2^2+X3^2+……+Xn^2 <= R^2. 现在给定n,R.求X ...
- 2014ACM/ICPC亚洲区西安站现场赛 F color(二项式反演)
题意:小球排成一排,从m种颜色中选取k种颜色给n个球上色,要求相邻的球的颜色不同,求可行的方案数,答案模1e9+7.T组数据,1<= n, m <= 1e9, 1 <= k < ...
- 2014ACM/ICPC亚洲区鞍山赛区现场赛1009Osu!
鞍山的签到题,求两点之间的距离除以时间的最大值.直接暴力过的. A - Osu! Time Limit:1000MS Memory Limit:262144KB 64bit IO Fo ...
- HDU 6227.Rabbits-规律 (2017ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学))
Rabbits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total S ...
随机推荐
- mariadb DML语句及用户授权
DML(Data Manipulation Language):INSERT, DELETE, UPDATE, SELECT INSERT [INTO] tbl_name [(col1,...) ...
- php输出函数 var_dump, dump,print,print_r 区别
php输出函数 var_dump, dump,print,print_r 区别 周末有空就来整理下
- C# 多线程操作样例
using System; using System.Threading; //引用多线程 namespace ThreadTest { public class Alpha { public voi ...
- Android LogCat使用详解
Android的Logcat用于显示系统的调试信息,可在分别以下几个地方查看和调用logcat: 1.eclipse的Debug模式或DDMS模式下的会有一个Logcat窗口,用于显示log日志 只需 ...
- python time 模块详解
Python中time模块详解 发表于2011年5月5日 12:58 a.m. 位于分类我爱Python 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括: ...
- Activity(一)
一个应用程序中至少包含一个Activity,Activity启动流程:当启动一个应用程序时,android操作系统会访问该应用程序的AndroidManifest.xml文件(该文件中说明了应用程序使 ...
- 菜鸟学习Spring——60s让你学会动态代理原理
一.为什么要使用动态代理 当一个对象或多个对象实现了N中方法的时候,由于业务需求需要把这个对象和多个对象的N个方法加入一个共同的方法,比如把所有对象的所有方法加入事务这个时候有三种方法 ...
- Oracle private dblink和pubic dblink
DB : 11.2.0.3.0 Oracle DBLINK 创建分为private 和 public dblink,默认创建的为private ; private dblink 只有创建的schema ...
- 设置SVN hooks实现自动发布
# CentOS下安装SVN yum -y install subversion svnserve --version cd /home/ mkdir svn cd svn/ /usr/bin/svn ...
- golang的内存模型与new()与make()
要彻底理解new()与make()的区别, 最好从内存模型入手. golang属于c family, 而c程序在unix的内在模型: |低地址|text|data|bss|heap-->|unu ...