“日拱一卒,功不唐捐”


写在前面

本人因为没开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 题解的更多相关文章

  1. CF175C Geometry Horse(贪心)

    CF175C 贪心,注意有不少细节,很容易死循环TLE 贪心是显而易见的,每次枚举价值最小的物品,进行销毁操作 朴素的枚举每一件物品复杂度为\(O(\sum k_i)\),明显超时 我们注意到朴素的+ ...

  2. 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 ...

  3. 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 ...

  4. FJNU 1151 Fat Brother And Geometry(胖哥与几何)

    FJNU 1151 Fat Brother And Geometry(胖哥与几何) Time Limit: 1000MS   Memory Limit: 257792K [Description] [ ...

  5. CodeForces 689E Mike and Geometry Problem (离散化+组合数)

    Mike and Geometry Problem 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/I Description M ...

  6. 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 ...

  7. Codeforces Gym 100338B Geometry Problem 计算几何

    Problem B. Geometry ProblemTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudg ...

  8. geometry(简单数学题)

    geometry  Accepts: 324  Submissions: 622  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 6553 ...

  9. HDU题解索引

    HDU 1000 A + B Problem  I/O HDU 1001 Sum Problem  数学 HDU 1002 A + B Problem II  高精度加法 HDU 1003 Maxsu ...

随机推荐

  1. node-sass 安装失败报错的原因及解决办法(整理)

    npm install 时偶尔遇到报错:没有安装python或node-sass 安装失败的问题,百度之后发现是被墙了,但根据百度的方法换了淘宝镜像和用了vpn都安装失败,最后发现原来是因为没有卸载之 ...

  2. 为什么不建议把数据库部署在Docker容器内?

    近2年Docker非常的火热,各位开发者恨不得把所有的应用.软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程, ...

  3. Spark的dataframe转rdd通用工具类

    需求解决问题 当每次读取hive表或者其他数据源,获取数据,相对其进行rdd操作,遇到任何类都需要df.rdd(row>row.getstring(0))去获取,就很麻烦,所以可以实现个通用的转 ...

  4. maven打包 依赖jar与不依赖jar

    ?xml version="1.0" encoding="UTF-8"?> <assembly xmlns="http://maven.a ...

  5. Linux运维入门到高级全套系列PDF

    Linux运维入门到高级全套系列PDF(转) [日期:2016-08-01] 来源:Linux社区  作者:Linux [字体:大 中 小]     Linux 学习技巧 初学者可以自己安装虚拟机,然 ...

  6. 杭电2734----Quicksum(C++)(数字与字符的关系)

    Quicksum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  7. Spring--AOP、通知的执行顺序

    AOP执行顺序 如果我们在同一个方法自定义多个AOP,我们如何指定他们的执行顺序呢? 可以通过指定order,order越小越是最先执行. 配置AOP执行顺序的三种方式: 通过实现Ordered接口 ...

  8. linux kernel操作GPIO函数

    一.头文件 #include <asm/gpio.h> 二.注册 GPIO int gpio_request(unsigned gpio, const char *label) 功能:申请 ...

  9. 我是如何在短期内快速掌握Dubbo的原理和源码的(纯干货)?

    写在前面 上周,在[Dubbo系列专题]中更新了两篇文章<冰河开始对Dubbo下手了!>和<俯瞰Dubbo全局,阅读源码前必须掌握这些!!>,收到了很多小伙伴的微信私聊消息,大 ...

  10. Lock锁 精讲

    1.为什么需要Lock 为什么synchronized不够用,还需要Lock Lock和synchronized这两个最常见的锁都可以达到线程安全的目的,但是功能上有很大不同. Lock并不是用来代替 ...