第七周 10.12---10.18

新的一周--- >_<

gooooooooo----

---------10.12

hdu 5501

补了周六BC的背包

背包很好想到,一道题目做不做,相当于是01背包,给出t,没有说要不要装满,所以最后扫一遍所有的dp值就可以了

然后就是题目的排序---看的题解了----题解讲得很清楚

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<vector>
 6 using namespace std;
 7
 8 const int maxn = 1005;
 9 int a[maxn],b[maxn],c[maxn];
10 int n,m;
11 int dp[5*maxn];
12
13 struct node{
14     int x,y,z;
15     double q;
16 }p[maxn];
17
18 int cmp(node n1,node n2){
19     return n1.q > n2.q;
20 }
21
22 void solve(){
23     sort(p+1,p+n+1,cmp);
24     for(int i = 1;i <= n;i++){
25         a[i] = p[i].x;
26         b[i] = p[i].y;
27         c[i] = p[i].z;
28     }
29
30     memset(dp,0,sizeof(dp));
31     int res = -1;
32     for(int i = 1;i <= n;i++){
33         for(int j = m;j >= c[i];j--){
34             dp[j] = max(dp[j],dp[j-c[i]] + a[i]-j*b[i]);
35             res = max(res,dp[j]);
36             //printf("dp[%d] = %d\n",j,dp[j]);
37         }
38     }
39     printf("%d\n",res);
40 }
41
42 int main(){
43     int T;
44     scanf("%d",&T);
45     while(T--){
46         scanf("%d %d",&n,&m);
47         for(int i = 1;i <= n;i++){
48             scanf("%d %d %d",&p[i].x,&p[i].y,&p[i].z);
49             p[i].q = 1.0*p[i].y/p[i].z;
50         }
51
52         solve();
53
54     }
55     return 0;
56 }

记得雨神暑假挂过一场比赛的一道题,也是类似这样排下序---

去找下先----

ZOJ 3908

从大到小枚举 x

将找到的小于等于 k-x的存起来,然后排序取前 m 大---

不会用STL,改得想哭了---

程序一直崩,一个lower_bound找到 s.end(),还不懂迭代器要减减一下---

最后还偷瞄了别人的代码------sad------

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<vector>
 6 #include<set>
 7 using namespace std;
 8
 9 typedef long long LL;
10 const int maxn = 1e6+5;
11 int n,m,k;
12 int a[maxn];
13
14 struct node{
15     int x,y;
16 }p[maxn];
17
18 int cmp(node n1,node n2){
19     return n1.x*n1.y > n2.x*n2.y;
20 }
21
22 void solve(){
23     multiset<int> s;
24     multiset<int>::iterator it;
25     multiset<int>::iterator itt;
26
27     for(int i = 1;i <= n;i++) if(a[i] <= k) s.insert(a[i]);
28     int l,r;
29     int cnt = 0;
30
31     for(;;){
32         if(s.size() < 2) break;
33
34         it = s.end();it--;
35         s.erase(it);
36         int x = *it;
37         int y = k-x;
38
39         itt = s.lower_bound(y);
40         if(itt == s.end()) itt--;
41         if(itt == s.begin() && *itt > y) continue;
42
43         if(*itt > y) {
44             if(itt == s.begin()) continue;
45             else itt--;
46         }
47
48         p[++cnt].x = *it;p[cnt].y = *itt;
49
50         s.erase(itt);
51     }
52
53     sort(p+1,p+cnt+1,cmp);
54
55     //for(int i = 1;i <= cnt;i++) printf("p[%d].x = %d  p[%d].y = %d\n",i,p[i].x,i,p[i].y);
56
57     LL res = 0;
58     for(int i = 1;i <= min(m,cnt);i++) res += 1LL*p[i].x*p[i].y;
59     printf("%lld\n",res);
60 }
61
62 int main(){
63     int T;
64     scanf("%d",&T);
65     while(T--){
66         scanf("%d %d %d",&n,&m,&k);
67         for(int i = 1;i <= n;i++) scanf("%d",&a[i]);
68
69         solve();
70
71     }
72     return 0;
73 }

时间: 2024-08-29 14:49:36

第七周 10.12---10.18的相关文章

第七周PSP(10.27-11.03)

psp   进度条 项目 细则 总计 代码行数   0 随笔字数   0 知识点   无 累计曲线 饼图

第七周学习进度表

时间 第七周 所花时间 10个小时左右 代码量 400行左右 博客量 3篇 了解到的知识点 Javabean的运用,web网页的跳转

20145123刘森明《Java程序设计》第七周学习总结

学习进度条 教材学习内容总结 第十一章1.静态sleep()用于流程暂停指定时间,单位是毫秒2.一个Thread被标记为Daemon线程,在所有非Daemon线程都结束时,JVM自动就会终止3.线程有优先权,数字越大优先权越高.如果优先权相同,则输流执行4.线程完成run()方法后,就会进入Dead5.线程一旦归入某个群组,就无法更换第十三章1.时间的度量格林威治标准时间 GMT世界时 UT国际原子时 TAI世界协调时间 UTCUnix时间 (不考虑闰秒修正,用以表达时轴上某一瞬间)2.重点 P

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 扩展 iptables应用在一个网段 http://www.aminglinux.com/bbs/thread-177-1-1.html sant,dnat,masquerade http://www.aminglinux.com/bbs/thread-7255-1-1.html iptables限制syn速率 http://www.aminglinux.com/bbs/thre

Hadoop2.7.3 多台主机完全分布式搭建(Mac OS X 10.12.4系统 + Parallels Desktop 12 Pro Edition)

Hadoop2.7.3 多台主机完全分布式搭建(Mac OS X 10.12.4系统) 前言 由于学校课程实验的要求,特意需要搭建hadoop的完全分布式系统,所以自己就蛋疼的配了,可惜关于MAC系统的Hadoop搭建材料太少,而且真正的基于校园网的配置基本上没有(基本是在一台电脑上进行,因此当在多台电脑上运行会有许多bug),因此这里想要能够将自己搭的过程想要分享给大家,可能有些配置的解释没有那么全面,所以希望大家见谅?? 环境 基于Mac OSX 10.12.4(Sierra).Ubuntu

【读书笔记】2016.12.10 《构建高性能Web站点》

本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 1.1 等待的真相 1.2 瓶颈在哪里 1.3 增加带宽 1.4 减少网页中的HTTP请求 1.5 加快服务器脚本计算速度 1.6 使用动态内容缓存 1.7 使用数据缓存 1.8 将动态内容静态化 1.9 更换Web服务器软件 1.10 页面组件分离 1.11 合理部署服务器 1.12 使用负载均衡 1.1

macOS(Sierra 10.12)上Android源码(AOSP)的下载、编译与导入到Android Studio

http://blog.bihe0832.com/macOS-AOSP.html [本文结构] 背景 背景简介 最近因为项目需要,要研究Android系统中应用安装的详细过程.在这种场景下,最好的办法就是Read the Fucking Source Code.之前都是在线看,这次因为看的内容比较多,而且看的比较细,因此打算在本地checkout一份.这篇文章就主要记录本人使用macOS(Sierra 10.12.1)在本地checkout出AOSP(7.1.1)并编译导入Android Stu

10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法

10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法 扩展(selinux了解即可) selinux教程 http://os.51cto.com/art/201209/355490.htm selinux pdf电子书 http://pan.baidu.com/s/1jGGdExK 10.11 linux网络相关 -ifconfig 命令在centos7 是没有的,需要安装yum inst

4.6日第10次作业,,18章风险,19章收尾,20章知识产权,高项,29-田哲琦

4.6日第10次作业,,18章风险,19章收尾,20章知识产权,高项,29-田哲琦 第18章.风险管理 1.风险管理包括哪六个过程?(记)P456 答:1).风险管理规划: 2).风险识别: 3).定性风险分析: 4).定量风险分析: 5).应对计划编制: 6).风险监控: 2.什么是应急计划?请举例.P459 答:应急计划:是指当一项可能的风险事件实际发生时项目团队将采取的预先确定的措施: 例如:当项目经理根据一个新的软件产品开发的实际进展情况,预计到该软件开发成果奖不能及时集成到正在按合同进

10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 ne

七周三次课 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法 10.11 Linux网络相关 Linux网络相关 10.12 firewalld和netfilter netfilter为centos6的防火墙 关闭filter 开启netfilter并查看默认规则 10.13 netfilter5表5链介绍 小结:如果经过本机,PREROUTING----->INPUT---->OU