清北第一套题(zhx)
死亡
【问题描述】
现在有个位置可以打sif,有个人在排队等着打sif。现在告诉你前个人每个人需要多长的时间打sif,问你第个人什么时候才能打sif。(前个人必须按照顺序来)
【输入格式】
第一行两个整数如上所述。
接下来行每行一个整数代表每个人所需要用的时间。
【输出格式】
一行一个整数表示答案。
【样例输入】
3 2
1
1
1
【样例输出】
1
【样例解释】
山里有座庙。
【数据规模与约定】
对于的100%数据,每个人所需用的时间不超过10^5。
|
测试点 |
测试点 |
||||
|
1 |
10 |
10 |
1 |
5000 |
500 |
|
2 |
20 |
10 |
2 |
100000 |
5000 |
|
3 |
50 |
10 |
3 |
100000 |
10000 |
|
4 |
1000 |
500 |
4 |
100000 |
20000 |
|
5 |
2000 |
500 |
5 |
100000 |
50000 |
题解:用一个优先队列轻松解决。由于优先队列由大到小排列,因此可以将时间的相反数压入队列,每次取栈顶元素。
#include<cstdio>
#include<iostream>
#include<queue>
#include<algorithm>
#include<cstring>
#define N 100100
using namespace std; int n,m;
int t[N];
long long ans;
priority_queue<long long> q;
int main()
{
freopen("death.in","r",stdin);
freopen("death.out","w",stdout); scanf("%d%d",&n,&m);
for (int i=;i<=n;i++) scanf("%d",&t[i]);
for (int i=;i<=m;i++)
q.push();
for (int i=;i<=n;i++)
{
long long k=q.top();
q.pop();
k=-k;
k+=t[i];
k=-k;
q.push(k);//取相反数压入栈中
}
ans=-q.top();
cout<<ans<<endl; fclose(stdin);
fclose(stdout); return ;
}
优先队列
凝视
【问题描述】
背包是个好东西,希望我也有。
给你一个二维的背包,它的体积是。现在你有一些大小为和的物品,每个物品有自己的价值。你希望往背包里面装一些物品,使得它们的价值和最大,问最大的价值和是多少。
【输入格式】
第一行一个整数代表该测试点的数据组数。
对于每组数据,第一行有四个整数,其中分别代表大小为和大小为的物品个数。
接下来一行有个数代表每个物品的价值。
接下来一行有个数代表每个物品的价值。
【输出格式】
对于每组询问,输出能够达到的价值最大值。
【样例输入】
1
2 3 2 2
1 2
1 2
【样例输出】
4
【样例解释】
庙里有座山。
【数据规模与约定】
对于20%的数据,N,M<=10.n1,n2<=100.
对于70%的数据,N,M<=100.n1,n2<=2000.
对于100%的数据,1<=T<=10,1<=N,M<=500.n1,n2<=10000.
题解:由于能装上1*3的物品,那么一定能装上1*2的物品。因此可以枚举1*3的物品,然后根据它剩下的体积装1*2的物品。找到最大价值。如果全部装1*3的物品,那么剩下的体积为1或者2,但有一种特殊情况需要考虑。注意当n==2或m==2是,若此时n%3==2&&m%3==2,那么剩下的4体积无法装入1*3的物品。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<ctime>
#include<queue>
#define N 10100
using namespace std;
int t,n,m,n1,n2,k,ans();
int a1[N]={},a2[N]={};
bool cmp(int x,int y)
{
return (x>y);
}
int main()
{
freopen("eyesight.in","r",stdin);
freopen("eyesight.out","w",stdout);
scanf("%d",&t);
while (t--)
{ scanf("%d%d%d%d",&n,&m,&n1,&n2);
a1[]=a2[]=;
for (int i=;i<=n1;i++) scanf("%d",&a1[i]);
for (int i=;i<=n2;i++) scanf("%d",&a2[i]);
sort(a1+,a1++n1,cmp);
sort(a2+,a2++n2,cmp);
for (int i=;i<=n1;i++) a1[i]+=a1[i-];
for (int i=;i<=n2;i++) a2[i]+=a2[i-];
if ((n%==)&&(m%==)&&(n==||m==)) k=;
else k=n*m%;
ans=;
n2=min(n2,(n*m-k)/);
for (int i=;i<=n2;i++)
ans=max(ans,a2[i]+a1[min(n1,(n*m-i*)/)]);
cout<<ans<<endl;
} fclose(stdin);
fclose(stdout); return ;
}
贪心
清北第一套题(zhx)的更多相关文章
- 【清北学堂2018-刷题冲刺】Contest 6
Task 1:子集 [问题描述] 若一个集合S中任意两个元素x和y,都满足x⊕y<min(x, y) ,则称集合S是"好的".其中⊕为按位异或运算符.现在给定一个大小为n ...
- 【清北学堂2018-刷题冲刺】Contest 5
这三个题写了一天半,第一个题写了大概一整天.出题人劝我从后往前写,我不听,结果T1想了+调了一天QWQWQ Task 1:序列 [问题描述] 定义一个"好的序列"为一个长度为M ...
- 【清北学堂2018-刷题冲刺】Contest 4
Task 1:序列 [问题描述] 小H原本有一个由连续的正整数组成的序列,如{4,5,6}或{10,11,12,13,14,15,16},但是她最近睡眠不足,只能记得其中的一些数字.她想知道,她最少 ...
- 【清北学堂2018-刷题冲刺】Contest 2
这场比赛的T1相当智熄.由于至今无法理解题意,我只能解出前20分.诸位dalao谁能比较好地理解题意(独立性)的,请联系我,不胜感激. 在此本蒟蒻只能贴上题面: Task 1:选举 [问题描述] ...
- 【清北学堂2018-刷题冲刺】Contest 1
Task 1:最小公倍数 输入n,求n与246913578的最小公倍数. 结果对1234567890取模. [样例输入] 3 [样例输出] 246913578 [数据规模和约定] 对于30%的数据 ...
- 清北考前刷题day1下午好
水题(water) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK出了道水题. 这个水题是这样的:有两副牌,每副牌都有n张. 对于第一副牌的每张牌长和宽 ...
- 【清北学堂2018-刷题冲刺】Contest 7
Task 1:小奇采药 [问题描述] 小奇是只天资聪颖的喵,他的梦想是成为世界上最伟⼤的医师. 为此,他想拜喵星球最有威望的医师为师. 医师为了判断他的资质,给他出了⼀个难题. 医师把他带到⼀ ...
- 【清北学堂2018-刷题冲刺】Contest 8
Task 1:关联点 [问题描述] ⼆叉树是⼀种常用的数据结构,⼀个⼆叉树或者为空,或者由根节点.左⼦树.右⼦树构成,其中左⼦树和右⼦树都是⼆叉树. 每个节点a 可以存储⼀个值val. 显然,如果 ...
- 10.24afternoon清北学堂刷题班
/* 这是什么题... */ #include<iostream> #include<cstdio> #include<cstring> #include<q ...
随机推荐
- C:\WINDOWS\system32\drivers\etc\hosts host文件夹里面的内容是什么?
这个文件是根据TCP/IP for Windows 的标准来工作的,它的作用是包含IP地址和Host name(主机名)的映射关系,是一个映射IP地址和Host name(主机名)的规定,规定要求每段 ...
- HDU2255 奔小康赚大钱【二分图最佳匹配】
题目链接: http://acm.hdu.edu.cn/showproblem.php? pid=2255 题目大意: 村里要分房子. 有N家老百姓,刚好有N间房子.考虑到每家都要有房住,每家必须分配 ...
- [RxJS] Transformation operator: repeat
Operator repeat() is somewhat similar to retry(), but is not for handling operators. In this lesson ...
- [React] React Fundamentals: Integrating Components with D3 and AngularJS
Since React is only interested in the V (view) of MVC, it plays well with other toolkits and framewo ...
- QStandardItemModel角色控制及QTreeView加入不同的右键菜单
1.概述 QTreeView最长用的一个功能就是作为导航栏,像vs里的项目结构树,word的文档结构图,资源管理器的文档结构,等等都是利用树形结构组织的,在前面已经讲述了Qt中使用标准化项目模型QSt ...
- Notepad++如何安装并使用source code pro 字体 转
http://blog.yucanlin.cn/2015/04/08/linux-%E5%AE%89%E8%A3%85-source-code-pro-%E5%AD%97%E4%BD%93/ ht ...
- change buffer
https://yq.aliyun.com/articles/222 change buffer: insert buffer delete buffer purge buffer 1.innodb_ ...
- myeclipse一些技巧
ctrl+h-----------------查找字符串 ctrl+A 全选→ctrl+shift+f 代码格式化,排版 ctrl+shift+O 自动引用
- [转] 整理了一份React-Native学习指南
自己在学习React-Native过程中整理的一份学习指南,包含 教程.开源app和资源网站等,还在不断更新中.欢迎pull requests! React-Native学习指南 本指南汇集React ...
- java io 流基础