死亡

【问题描述】

现在有个位置可以打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)的更多相关文章

  1. 【清北学堂2018-刷题冲刺】Contest 6

    Task 1:子集 [问题描述]  若一个集合S中任意两个元素x和y,都满足x⊕y<min⁡(x, y) ,则称集合S是"好的".其中⊕为按位异或运算符.现在给定一个大小为n ...

  2. 【清北学堂2018-刷题冲刺】Contest 5

     这三个题写了一天半,第一个题写了大概一整天.出题人劝我从后往前写,我不听,结果T1想了+调了一天QWQWQ Task 1:序列 [问题描述]  定义一个"好的序列"为一个长度为M ...

  3. 【清北学堂2018-刷题冲刺】Contest 4

    Task 1:序列 [问题描述]  小H原本有一个由连续的正整数组成的序列,如{4,5,6}或{10,11,12,13,14,15,16},但是她最近睡眠不足,只能记得其中的一些数字.她想知道,她最少 ...

  4. 【清北学堂2018-刷题冲刺】Contest 2

     这场比赛的T1相当智熄.由于至今无法理解题意,我只能解出前20分.诸位dalao谁能比较好地理解题意(独立性)的,请联系我,不胜感激.  在此本蒟蒻只能贴上题面: Task 1:选举 [问题描述] ...

  5. 【清北学堂2018-刷题冲刺】Contest 1

    Task 1:最小公倍数  输入n,求n与246913578的最小公倍数.  结果对1234567890取模. [样例输入] 3 [样例输出] 246913578 [数据规模和约定] 对于30%的数据 ...

  6. 清北考前刷题day1下午好

    水题(water) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK出了道水题. 这个水题是这样的:有两副牌,每副牌都有n张. 对于第一副牌的每张牌长和宽 ...

  7. 【清北学堂2018-刷题冲刺】Contest 7

    Task 1:小奇采药 [问题描述]  小奇是只天资聪颖的喵,他的梦想是成为世界上最伟⼤的医师.  为此,他想拜喵星球最有威望的医师为师.  医师为了判断他的资质,给他出了⼀个难题.  医师把他带到⼀ ...

  8. 【清北学堂2018-刷题冲刺】Contest 8

    Task 1:关联点 [问题描述]  ⼆叉树是⼀种常用的数据结构,⼀个⼆叉树或者为空,或者由根节点.左⼦树.右⼦树构成,其中左⼦树和右⼦树都是⼆叉树. 每个节点a 可以存储⼀个值val.  显然,如果 ...

  9. 10.24afternoon清北学堂刷题班

    /* 这是什么题... */ #include<iostream> #include<cstdio> #include<cstring> #include<q ...

随机推荐

  1. C:\WINDOWS\system32\drivers\etc\hosts host文件夹里面的内容是什么?

    这个文件是根据TCP/IP for Windows 的标准来工作的,它的作用是包含IP地址和Host name(主机名)的映射关系,是一个映射IP地址和Host name(主机名)的规定,规定要求每段 ...

  2. HDU2255 奔小康赚大钱【二分图最佳匹配】

    题目链接: http://acm.hdu.edu.cn/showproblem.php? pid=2255 题目大意: 村里要分房子. 有N家老百姓,刚好有N间房子.考虑到每家都要有房住,每家必须分配 ...

  3. [RxJS] Transformation operator: repeat

    Operator repeat() is somewhat similar to retry(), but is not for handling operators. In this lesson ...

  4. [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 ...

  5. QStandardItemModel角色控制及QTreeView加入不同的右键菜单

    1.概述 QTreeView最长用的一个功能就是作为导航栏,像vs里的项目结构树,word的文档结构图,资源管理器的文档结构,等等都是利用树形结构组织的,在前面已经讲述了Qt中使用标准化项目模型QSt ...

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

  7. change buffer

    https://yq.aliyun.com/articles/222 change buffer: insert buffer delete buffer purge buffer 1.innodb_ ...

  8. myeclipse一些技巧

    ctrl+h-----------------查找字符串 ctrl+A 全选→ctrl+shift+f 代码格式化,排版 ctrl+shift+O  自动引用

  9. [转] 整理了一份React-Native学习指南

    自己在学习React-Native过程中整理的一份学习指南,包含 教程.开源app和资源网站等,还在不断更新中.欢迎pull requests! React-Native学习指南 本指南汇集React ...

  10. java io 流基础