贪心算法
han_hhh
这个作者很懒,什么都没留下…
展开
-
今年暑假不AC 【hdu 2037】【贪心】
贪心策略:当前节目中选择结束时间最早的,保证剩余观看时间的最大化。#include<iostream>#include<algorithm>using namespace std;struct t{ int ti_s; int ti_e;}time[101];bool cmp(t t1,t t2){ return t1.ti_e<t2.ti_e;}int main(){ int n; while(cin>>n){ if(n=原创 2020-06-12 22:01:22 · 121 阅读 · 0 评论 -
代理服务器【清华复试机试题】【贪心】
题目描述 使用代理服务器能够在一定程度上隐藏客户端信息,从而保护用户在互联网上的隐私。我们知道n个代理服务器的IP地址,现在要用它们去访问m个服务器。这 m 个服务器的 IP 地址和访问顺序也已经给出。系统在同一时刻只能使用一个代理服务器,并要求不能用代理服务器去访问和它 IP地址相同的服务器(不然客户端信息很有可能就会被泄露)。在这样的条件下,找到一种使用代理服务器的方案,使得代理服务器切换的次数尽可能得少。输入描述: 每个测试数据包括 n + m + 2 行。 第 1 ...原创 2020-06-12 21:22:37 · 766 阅读 · 0 评论 -
Senior‘s Gun HDU - 5281 【贪心】
思路:需要在a[i]>b[j]的情况下,使a[i]尽可能大,而b[j]尽可能小。贪心策略为用当前剩下的枪去打最弱的怪物,以便让每一枪都能获得当前情况下最大的奖金。注意:刚开始wrong answer了,后来发现数据类型longlong#include<iostream>#include<algorithm>#include<cstring>using namespace std;bool cmp(long long a,long long原创 2020-06-01 11:00:47 · 183 阅读 · 0 评论 -
FatMouse Trade HDU - 1009 【贪心】
题意:FatMouse有M磅猫粮,想要用它来和守门的猫交换得到咖啡豆。一共有N个房间,第i个房间有J[i]磅的咖啡豆,需要F[i]磅的猫粮。如果给某个猫守卫F[i]*a%的猫粮,可以得到J[i]*a%的咖啡豆输入:包含多个测试样例,第一行输入M和N,用空格隔开N行,每行输入J[i] and F[i]最后一个测试样例是-1 -1,所有的数字都不超过1000输出:精确到3位小数的实数,是FatMouse可以得到的总的的咖啡豆数量。...原创 2020-06-01 08:34:46 · 175 阅读 · 0 评论 -
UVA10037 Bridge
n people wish to cross a bridge at night. A group of at most two people may cross at any time, andeach group must have a flashlight. Only one flashlight is available among the n people, so some sort o...原创 2018-08-15 19:49:22 · 359 阅读 · 1 评论 -
Duizi and Shunzi 【贪心】
https://vjudge.net/contest/285413#problem/A首先明确一点,组成对子只需要两张牌,组成顺子需要三张牌。所以先组成对子由上图分析,考虑思路为先组成对子,再看他的下一个是否为奇数,再看下下个是否不为0ac代码#include<iostream>#include<cstring>#include<cmath>...原创 2019-04-27 11:45:05 · 164 阅读 · 0 评论 -
Crossing River 【贪心】
https://vjudge.net/contest/285413#problem/B题目大意:n个人过河,只有一条船,最多只能坐两个人,问最少用多长时间可以让所有人都过河,注意把船开过河还需要再开回来接人。样例是1、2、5、10,想了很久最快都要18秒,但是答案是17,找了找答案,发现是这样n=滴1、2先过,1回来,5,10再过,2回来,1、2最后过去,时间为2+1+10+2+2=1...原创 2019-04-27 15:53:14 · 390 阅读 · 0 评论 -
Commando War 【贪心】
https://vjudge.net/contest/285413#problem/D贪心算法,先排序,让j最大的人先开始,然后用两个数组,一个start,用来存储每个人开始工作的时间,即被通知任务的时间,一个end,用来存储工作完成的时间,最后end数组里最大的值即为所求。其中,start[i]=start[i-1]+b[i],end[i]=start[i]+j[i]#includ...原创 2019-04-27 17:45:41 · 154 阅读 · 0 评论