CF175C Geometry Horse 题解
“日拱一卒,功不唐捐”
写在前面
本人因为没开long long而被迫参考楼下思路重构代码,最后发现这个问题加了long long才得以AC
进入正题
题面大家应该很清晰了,
这个水题(我也就交了七遍)的主要做法是 模拟+一点贪心+小学二年级数学
我们不难想到,把价值高的放在最后摧毁会更优
直接上一个sort
但是,问题来了:
1、可能将这一类物品摧毁一部分后,就直接进入下一阶段
2、可能将这一类物品全部摧毁后,还不能满足下一阶段
3、可能将这一类物品全部摧毁后,会横跨好几个阶段
4、可能到达最后一个阶段,还有许多物品没有被摧毁
其实让我们用代码直接模拟这个过程即可
如果遇到我们上述问题,多特判几下
具体解释在下面代码中
注:变量名zsf,lkp,lzx都是我的学姐长, (显然,lkp没用(到))
1 /*
2 Work by: Suzt_ilymtics
3 */
4 #include<iostream>
5 #include<cstdio>
6 #include<algorithm>
7 using namespace std;
8 struct node{
9 long long num , c;
10 bool operator < (const node & b) const {return c < b.c; }
11 }a[110];
12 int n,t,zsf = 1;//zsf贡献因子
13 long long p[110], lzx = 0, wz = 1;//lkp摧毁物品数,lzx与下一个阶段的差距
14 long long ans = 0;
15 int max(int x,int y){return x > y ? x : y ;}
16 int main()
17 {
18 scanf("%d",&n);
19 for(int i=1;i<=n;++i) scanf("%d%d",&a[i].num,&a[i].c);
20 scanf("%d",&t);
21 for(int i=1;i<=t;++i) scanf("%lld",&p[i]);
22 sort(a+1,a+1+n);
23 int i = 1;
24 lzx = p[zsf];//算一下差距
25 while(i<=n){
26 if(a[i].num >= 0 && a[i].num - lzx < 0){//如果当前物品数不够
27 ans += a[i].c * zsf * a[i].num;//先加上当前价值*贡献因子*剩余的数量
28 lzx -= a[i].num;//差距要减掉a[i].num
29 a[i].num = 0;//减完之后还剩0个
30 i++; //换下一个物品
31 }
32 else{//如果够
33 ans += a[i].c * zsf * lzx;//直接加上当前价值*贡献因子*差距的数量
34 a[i].num -= lzx;//当前物品的数量要减去差距
35 if(zsf > t) {
36 lzx = max(a[i].num,1);
37 continue;//如果 贡献因子超过第t个数,则贡献因子达到最大值
38 }
39 zsf++;//贡献因子++
40 if(zsf > t) continue;
41 lzx = p[zsf] - p[zsf-1];//更新差距
42 }
43 }
44 printf("%lld",ans);
45 return 0;
46 }
为了卡我自己的而手造的样例:
//cin:
1
5 1
2
2 3
//cout:
//10
The end
如果您有什么疑问的地方,尽管来骚扰我
CF175C Geometry Horse 题解的更多相关文章
- CF175C Geometry Horse(贪心)
CF175C 贪心,注意有不少细节,很容易死循环TLE 贪心是显而易见的,每次枚举价值最小的物品,进行销毁操作 朴素的枚举每一件物品复杂度为\(O(\sum k_i)\),明显超时 我们注意到朴素的+ ...
- ZOJ 4082 Little Sub and his Geometry Problem题解
题意 f(u,v):x小于等于u且y小于等于v的点才对f有贡献,每个这样的点贡献(u-x)+() 思路 =f(u_2,v_2)" class="mathcode" src ...
- Hdoj 1086.You can Solve a Geometry Problem too 题解
Problem Description Many geometry(几何)problems were designed in the ACM/ICPC. And now, I also prepare ...
- FJNU 1151 Fat Brother And Geometry(胖哥与几何)
FJNU 1151 Fat Brother And Geometry(胖哥与几何) Time Limit: 1000MS Memory Limit: 257792K [Description] [ ...
- CodeForces 689E Mike and Geometry Problem (离散化+组合数)
Mike and Geometry Problem 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/I Description M ...
- BestCoder Round #68 (div.2) geometry(hdu 5605)
geometry Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...
- Codeforces Gym 100338B Geometry Problem 计算几何
Problem B. Geometry ProblemTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...
- geometry(简单数学题)
geometry Accepts: 324 Submissions: 622 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 6553 ...
- HDU题解索引
HDU 1000 A + B Problem I/O HDU 1001 Sum Problem 数学 HDU 1002 A + B Problem II 高精度加法 HDU 1003 Maxsu ...
随机推荐
- Atlas 2.1.0 实践(2)—— 安装Atlas
在完成Atlas编译以后,就可以进行Atlas的安装了.Atlas的安装主要是安装Atlas的Server端,也就Atlas的管理页面,并确保Atlas与Kafka Hbase Solr等组件的集成. ...
- [Machine Learning] 逻辑回归 (Logistic Regression) -分类问题-逻辑回归-正则化
在之前的问题讨论中,研究的都是连续值,即y的输出是一个连续的值.但是在分类问题中,要预测的值是离散的值,就是预测的结果是否属于某一个类.例如:判断一封电子邮件是否是垃圾邮件:判断一次金融交易是否是欺诈 ...
- JavaDailyReports10_13
今天完成了课堂测试二的内容要求,开阔了编程的思路,学到了很多程序设计思想,为以后的学习提供了很多帮助. 明天开始继续完善四则运算的程序,并且开始JavaWeb的学习!
- Java学习日报7.24
package tem; public class Tem { public static void main(String[] args) { // TODO 自动生成的方法存根 //每隔10摄氏度 ...
- 2020DevOps状态报告
这是Puppet报告的走过的第九个年头,本次报告基于对2400名IT.开发.信息安全行业的技术人员的调研,着重勾画了DevOps状态的两大趋势:平台模型.需求变更的管理.多年来,我们已经证明了DevO ...
- 论文翻译:2018_Deep Learning for Acoustic Echo Cancellation in Noisy and Double-Talk Scenarios
论文地址:深度学习用于噪音和双语场景下的回声消除 博客地址:https://www.cnblogs.com/LXP-Never/p/14210359.html 摘要 传统的声学回声消除(AEC)通过使 ...
- 【Azure Application Insights】在Azure Function中启用Application Insights后,如何配置不输出某些日志到AI 的Trace中
问题描述 基于.NET Core的Function App如果配置了Application Insights之后,每有一个函数被执行,则在Application Insights中的Logs中的tra ...
- 论JAVA实现MYSQL 行级锁(分布式锁实现方案一)
@Override @Transactional public String getCustomerId() { // return String.valueOf(getSequenceId(SEQ_ ...
- vue element 表单验证不通过,滚动到固对应位置
我们在使用elementIUI实现表单验证,内容比较多的时候,提示内容会被遮挡,这时候用户不清楚什么情况,还会连续点击提交按钮.这个时候需求来啦:我们需要在表单验证不通过的时候,页面滚动到对应的位置. ...
- JavaScript高级程序设计(第4版)知识点总结
介绍 JavaScript高级程序设计 第四版,在第三版的基础上添加了ES6相关的内容.如let.const关键字,Fetch API.工作者线程.模块.Promise 等.适合具有一定编程经验的 W ...