2019.3.29

贪心:一直超时,查了后发现要标记.

不过sun和v不写>0会出错?

http://poj.org/problem?id=3040

 1 #include<iostream>
 2 #include<cmath>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 #define N 15000
 7 #define ll long long
 8 #define inf 0x3f3f3f3f
 9 #define mem(a) memset(a,0,sizeof(a))
10 struct node{
11  int x,y;
12 }f[25],g;
13 int main()
14 {
15     int n;
16     int c,ans=0;
17     cin>>n>>c;
18     int t=n;
19     for(int i=1;i<=t;i++)
20     {
21         cin>>f[i].x>>f[i].y;
22         if(f[i].x>=c) {ans+=f[i].y;i--;t--;}
23     }
24     for(int i=1;i<t;i++)
25     {
26         for(int j=i+1;j<=t;j++)
27         {
28             if(f[i].x<f[j].x)
29             {
30               g=f[i];
31               f[i]=f[j];
32               f[j]=g;
33             }
34         }
35     }
36     int mark[25];
37     while(1)
38     {
39         mem(mark);
40         int sum=c;
41         for(int i=1;i<=t;i++)
42         {
43             if(f[i].y&&sum>0)
44             {
45                 mark[i]+=min(f[i].y,sum/f[i].x);
46                 sum-=f[i].x*mark[i];
47             }
48         }
49         if(sum>0)
50         {
51             int v;
52             for(int i=t;i>=1;i--)
53             {
54                 if(f[i].y&&sum>0)
55                 {
56                     v=min(f[i].y-mark[i],(sum+f[i].x-1)/f[i].x);// hou
57                     if(v>0){
58                       sum-=v*f[i].x;
59                       mark[i]+=v;
60                     }
61                 }
62             }
63         }
64         if(sum>0)break;
65         int v=inf;
66         for(int i=1;i<=t;i++)
67         {
68             if(mark[i])
69             {
70                 v=min(v,f[i].y/mark[i]);
71             }
72         }
73         ans+=v;
74         for(int i=1;i<=t;i++)
75         {
76             if(mark[i])
77             {
78                 f[i].y-=v*mark[i];
79             }
80         }
81     }
82   cout<<ans<<endl;
83     return 0;
84 }

poj 3040 Allowance

原文地址:https://www.cnblogs.com/XXrll/p/10623213.html

时间: 2024-10-08 14:18:33

2019.3.29的相关文章

Python基础教程—2019/1/29

2019/1/29 // 整除** 乘方0x 十六进制 0b 二进制 0o八进制 常用模块和函数1:pow() 乘方 >> pow(2,3)8>> 2**38>> 2:abs() 绝对值 3:round() 向最接近的那个数取整,如果一样,向偶数取整 >> round(2/3)1>>4:math库的floor()函数,向下取整>> import math>> math.floor(32.9)32>> 5:mat

2019.08.29学习整理

2019.08.29学习整理 绑定方法与非绑定方法 绑定方法 对象绑定方法 类的绑定方法 绑定方法:特殊之处,绑定给谁就是谁来调,并且会把自身调过来 类的绑定方法 绑定给类,类来调用,会把类自身传过来 类的绑定方法用在什么地方 不需要通过对象,只需要通过类就能获取到一些东西的时候,用类的绑定方法 类的绑定方法,可以由对象来调 class Person: ''' 注释的内容 ''' def __init__(self,name,age): # print(self) self.name=name

DeepFaceLab更新至2019.12.29

更新内容: == 29.12.2019 == 修复已编辑遮罩脸部的脸部增强器 修复在同一DFL文件夹中使用各种GPU时长时间加载 修复extract unaligned faces avatar模型:默认建模是head fix faceset enhancer for faces that contain edited mask fix long load when using various gpus in the same DFL folder fix extract unaligned f

PAT 甲级 A1065 (2019/01/29)

1 #include<cstdio> 2 int main(){ 3 int n, countCase = 1; 4 long long a, b, c, sum; 5 scanf("%d", &n); 6 while(n--){ 7 bool flag; 8 scanf("%lld%lld%lld", &a, &b, &c); 9 sum = a + b; 10 if(a < 0 && b <

2019.03.29

今日份算法 文章来自<算法解读>漫画版 第一章:什么是算法 算法 是利用计算机解决问题的处理步骤 算法种类: 1.技术计算 2.排序 3.查找 4.字符串模式匹配 算法的基础--结构化程序设计的思想 有一种编程思想叫做结构化程序设计 a.顺序结构……按照所述顺序处理 b.选择结构……根据判断条件改变执行流程 c.循环结构……当条件成立时,反复执行给定的处理操作 第二章 变量和数组 算法是解决问题并获得结果的过程 其次,算法的处理过程中,也需要各种临时的数据 本章中,我们将学习保存和管理算法中必

学习总结2019.3.29

函数的参数 形参:定义函数()中出现的变量名,用来接收外界传来的值 # 注:形参随着函数的调用才产生,随着函数调用结束而销毁 ? 实参:函数调用()中传入的实际值,值可以是常量,变量,表达式或者三者的组合 ? ''' def fn(形参): pass fn(实参) ''' 实参分类 def fn1(a,b,c): print(a,b,c) ? # 位置实参:按照位置的顺序,从左到右为形参传递值 fn1(10,20,30) fn1(30,20,10) ? # 关键字实参:可以不按顺序传递,形参按名

【纪中集训2019.3.29】整除分块

题目 描述 ? 本题的背景是整除分块: ? 定义一个数列$a_{n,i} ? = ?\lfloor \frac{n}{i} \rfloor $ ; ? 求$\sum_{i=l}^{r} mex(a_n) $ ; ? 其中\(mex\)表示序列中最小的没有出现过的自然数: ? 答案对\(998244353\)取模 : 范围 ? \(1 \le T \le 65536 \ , \ 1 \le l ,r \le 10^{36}\) : ? 评测系统支持使用 $ _ _ int218 $ ,但是不能直接

2019.06.29 - 上个接口输出的参数需要给下个接口做输入的参数

1.UNintest框架代码执行顺序: 先执行setUp  - 然后执行test01方法  - 再执行tearDown方法 2.如果想要使用test01返回的参数作为test02传入的参数则有两种方式:①.不使用UNintest框架 直接写普通类 class xx(): 也不需要setUp和tearDown方法 直接在test01中调用base,然后去拼接URL.test01中直接return需要传入下个接口的参数 test02接口使用类名.test01()获得test01 return回来的的

2019.6.29

记一点零碎的流水账与情绪. 昨晚和室友打了一盘游戏,我戏称,如果打游戏都不能专心的话,又何谈认真学习呢?其实这是对我自己的反思,感觉“注意力剥夺”这种事情也发生在了自己身上,做什么都不能形成一个稳定而有效的专注期,这应该是我最近急需要解决的事情. 咖啡喝完了,新咖啡还没到,学校超市卖的1元1条的速溶咖啡好难喝啊,1.5元的雀巢又喝不起...好吧,其实是我宿舍楼下的超市不卖散装雀巢了,卖散装雀巢的超市又在学校另一头,虽然我校小,但我没事也不想往那边跑. 晚上一位同学来我宿舍问我题,毕竟马上考试了我