Knapsack I Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitStatus Problem Description 给出N个数a[1]....a[N],对于任意两个数(a[i],a[j]),保证a[i] % a[j] == 0 || a[j] % a[i] == 0,再给出一个数M,问这些数能否取出若干个来,使得其和为M Input 多组数据,每组数组首先输入N,…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2460 网上很多题目都没说这个题目的证明,只说了贪心策略,我比较愚钝,在大神眼里的显然的策略还是想证明一下才安心……所以这里记录一下证明过程. 贪心策略:按魔力值从大到小排序,从大往小往线性基里插,如果成功插入新元素,就选这个,如果插不进去,就不选这个. 证明: 设有n个材料,每个材料的属性值是x[1],x[2],...,x[n],魔力值是v[1],v[2],...,v[n],这里假设v已…
吐槽:扣了几个小时,大致思路是有了,但是贪心的证明就是不会, 死磕了很长时间,不想想了,结果码代码又不会码.. 深深体会到自己码力很差,写很多行还没写对,最后别人代码全一二十行,要哭了 以下可能是个人口胡瞎扯:首先n个点,每个点一个出边,所以这个图可能是有很多连通块,具体有以下几种形态: 环 内向基环树 树上有一个点套一个自环 这三种构成森林. 先看最多死多少人. 环的话是$siz-1$ 内向基环树只有树那部分的叶子(无入度)可以存活.画图举例辅助理解. 树上带自环:同上 再看很烦人的最少死多少…
Room and Moor Problem Description PM Room defines a sequence A = {A1, A2,..., AN}, each of which is either 0 or 1. In order to beat him, programmer Moor has to construct another sequence B = {B1, B2,... , BN} of the same length, which satisfies that:…
Portal: http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1345  http://codeforces.com/gym/100803/attachments  A题 好题! 坑不多,切入比较难 一开始的想法是暴力,由于求得是最小解且此图太大无边界,所以不能DFS,首先想到BFS 解法1 BFS+STL queue #include<iostream> #include<algorithm> #include&…
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 28170    Accepted Submission(s): 14937 Problem Description "今年暑假不AC?" "是的." "那你干什么呢?" "看世界杯呀,笨蛋!" &quo…
1)区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖 样例: 区间长度8,可选的覆盖线段[2,6],[1,4],[3,6],[3,7],[6,8],[2,4],[3,5] 解题过程: 1将每一个区间按照左端点递增顺序排列,拍完序后为[1,4],[2,4],[2,6],[3,5],[3,6],[3,7],[6,8] 2设置一个变量表示已经覆盖到的区域.再剩下的线段中找出所有左端点小于等于当前已经覆盖到的区…
啊,不好意思..这个题窝也不会,看了网上的题解做的.. 先说一下题意.. 你要考试了..然后你有n天的时间准备以及进行考试 并且,每一天..要么你花一天时间去考一门(每天只能考一门),要么花一天时间休息,要么花一天时间复习.. 然后给你一个考试安排的序列(值为考试科目编号,值为零说明今天不能考试),给你一个每门考试至少要复习的时长的序列.. 然后问你最短多长时间你能顺利考完试..不能考完就输出-1 题意: 给出一串数字,代表了第i天能够进行哪场考试,如果为0就不能考试,每天只能考一场.一共要考m…
http://codeforces.com/contest/389/problem/E 这道题目刚开始想的特别麻烦...但是没想到竟然是贪心 我们只需要知道偶数的时候可以对称取的,然后奇数的时候没次取得就留下中间就可以了.最后对中间进行处理即可.…
题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排成一排,国王站在队伍的最前面.排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果. 国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少.注意,国…
题目描述 让我们来建造一艘新的海盗船.船上有 N个旗杆,每根旗杆被分成单位长度的小节.旗杆的长度等于它被分成的小节的数目.每根旗杆上会挂一些帆,每张帆正好占据旗杆上的一个小节.在一根旗杆上的帆可以任意排布在不同的小节中,但是每个小节上至多能挂一张帆. 在风中,帆的不同排布方式会产生不同的推动力.靠近船头的帆比它后面的相同高度上的帆获得的推动力少,换句话说,靠近船头的帆的推动力由于受它后面相同高度的帆的影响而打了折扣.对于任意一张帆,它的推动力折扣等于在它后面并且和它在同一高度的帆的数目. 所有帆…
Planning time limit per test 1 second memory limit per test 512 megabytes input standard input output standard output Helen works in Metropolis airport. She is responsible for creating a departure schedule. There are n flights that must depart today,…
传送门 短代码简单题. 题意简述:对于一个序列XXX,定义其两个伴随序列a,ba,ba,b,aia_iai​表示以第iii个数结尾的最长上升子序列长度,bib_ibi​表示以第iii个数开头的最长下降子序列长度,现在给出aaa序列,问bbb序列所有数加起来最大值是多少. 思路:首先发现bbb序列就是把这个序列反过来之后得到的X′X'X′的aaa序列,因此贪心证明一波可以发现:对于这个需要自己构造的原序列是较大的数越靠前越好 然后可以根据aaa序列建一些有向边来表示各个位置的大小关系. 考虑证明如…
A.GPA(HDU4802): 给你一些字符串对应的权重,求加权平均,如果是N,P不计入统计 GPA Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1193    Accepted Submission(s): 743 Problem Description In college, a student may take several…
1007: 严格递增连续子段 [模拟] 时间限制: 1 Sec 内存限制: 128 MB提交: 244 解决: 18 统计 题目描述 给定一个有NN个正整数组成的序列,你最多可以改变其中一个元素,可以修改为任意的整数.问可以得到的严格递增连续子段的最大长度. 输入 第一行输入一个整数TT,代表有TT组测试数据. 每组数据占两行,第一行输入一个整数NN,代表元素个数. 下面一行有NN个正整数ai(ai<231)ai(ai<231). 注:1<=T<=100,1<=N<=1…
Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3...n-1,n), .当 Ai大于0时表示这个月盈利Ai 元,当 Ai小于0时表示这个月亏损Ai 元.所谓一段时间内的总收入,就是这段时间内每个月的收入额的总和. 刁姹的任务是秘密进行的,为了调查商人的账本,她只好跑到商人那里打工.她趁商人不在时去偷看账本,可是她无法将账本偷出来,每次偷看账本时她都只能看某段时间内账本上记录…
Description FJ打算带他的N(1 <= N <= 30,000)头奶牛去参加一年一度的“全美农场主大奖赛”.在这场比赛中,每个参赛者都必须让他的奶牛排成一列,然后领她们从裁判席前依次走过. 今年,竞赛委员会在接受队伍报名时,采用了一种新的登记规则:他们把所有队伍中奶牛名字的首字母取出,按它们对应奶牛在队伍中的次序排成一列(比如说,如果FJ带去的奶牛依次为Bessie.Sylvia.Dora,登记人员就把这支队伍登记为BSD).登记结束后,组委会将所有队伍的登记名称按字典序升序排列,…
题目链接 uoj 题解 以前看别人博客,在考场上用费用流做,一直以为这题是毒瘤网络流题 没想到竟然是贪心模拟题... 如果只有一个蔬菜呢?这就是一个经典的普及难度的贪心,正着推面临优先选择的困难,而逆着推由于不存在淘汰,所以可以贪心选最大的 首先\(s_i\)的限制很容易处理,只需将每一个蔬菜分出一个价值\(a_i + s_i\)且过期时间为该蔬菜最后一个的蔬菜 现在我们计算出每个蔬菜最晚放置的时间点,将每一天看做一个盒子,我们贪心地优先将价值大的蔬菜从它能放入的地方一直往前放 由于每个盒子最多…
[算法]贪心+线段树 [题意]给定n个数字ci,m个区间[a,b](1<=a,b<=10^5),每个位置最多被ci个区间覆盖,求最多选择多少区间. 附加退化问题:全部ci=1,即求最多的不相交的区间. [题解]本题是区间和点之间的经典贪心,有两种经典做法,本质思想都是通过排序实现扫描线,细节根据题目不同而不同. 一.从区间角度出发,按区间右端点从小到大排序 然后再按左端点从大到小排序,从左到右能加就加. 感性理解:在对右影响一致的情况下,选择对左影响最小的. 证明:假设有最优决策序列S和当前决…
Although Farmer John has no problems walking around the fair to collect prizes or see the shows, his cows are not in such good shape; a full day of walking around the fair leaves them exhausted. To help them enjoy the fair, FJ has arranged for a shut…
题目传送门 所以NOI的题现在简单惹? 30分做法:枚举开始的权值,n²过掉. 100分做法:竟然是贪心qwq.因为我们的计算背景是二进制下,所以我们贪心地想让每一位都是1.我们现在需要解决的问题,就是找到一个开始的攻击值.所以我们可以按位检查一下当前位是否可以为1,能不能更新答案. Code #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; ll lmax(ll a,ll…
nim游戏的先手必胜条件是所有堆的火柴个数异或和为0,也就是找一个剩下火柴堆数没有异或和为0的子集的方案,且这个方案保证剩下的火柴个数总和最大 然后我就不会了,其实我到现在也不知道拟阵是个什么玩意-- 详见:https://blog.csdn.net/wyfcyx_forever/article/details/39477673 其实想2460一样用贪心证明也行 总之用按大小从大到小假如线性基然后剩下的就是答案 #include<iostream> #include<cstdio>…
[Usaco2006 Open]County Fair Events 参加节日庆祝 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 487  Solved: 344[Submit][Status][Discuss] Description Farmer John has returned to the County Fair so he can attend the special events (concerts, rodeos, cooking s…
Description The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over the next N (1 <= N <= 10,000) weeks, the price of milk and labor will fluctuate weekly such that it will cost the company C_i (1 <= C_i <= 5,000) c…
题意:给定一个环,环上有一些点包裹,你要从 $0$ 号点出发,然后每次带上一个容量为 $k$ 的背包. 问:如果要把所有的包裹都带回 $0$ 好点最少要走多少距离. 每一次只有 $3$ 种走法:走整圆,没走到半圆就返回(两个方向) 而我们可以贪心证明我们最多只会走一次整圆: 如果我们要走 $2$ 次或两次以上整圆的话说明要拿的物品肯定 $>2k$ 个. 而背包的容量是有限的:只能装 $k$ 个. 所以这么走是不如先装物品多的那一侧半圆,然后再跑一次整圆. 然后就好做了:直接对每一侧半圆求取前 $…
[P3817 小A的糖果 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖. [贪心策略]: 因为吃后面的可以影响后面的情况.所以一旦不满足就吃后面的即可. #include<bits/stdc++.h> using namespace std; typedef long long ll; ; ll a[N] , n , x ; int main() { ios_base ::…
出题人有两个数组A,B,请你把两个数组归并起来使得$cost=\sum i c_i$最小. 归并要求原数组的数的顺序在新数组中不改变. 贪心水题 对于一段序列$A_i,A_{i+1},...,A_r$, 我们考虑向$A_k,A_{k+1}$间中间插入一个$x$. 贡献为$iA_i+(i+1)A_{i+1}+...+kA_k+(k+1)x+(k+2)A_{k+1}+...+(r+1)A_r$. 由$x$插入到$A_i$左端更优可以得到$\frac{A_i+...+A_k}{k-i+1}<x$. 由…
[HEOI2015]兔子与樱花 Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由\(n\)个树枝分叉点组成,编号从\(0\)到\(n-1\),这\(n\)个分叉点由\(n-1\)个树枝连接,我们可以把它看成一个有根树结构,其中\(0\)号节点是根节点.这个树的每个节点上都会有一些樱花,其中第i个节点有\(c_i\)朵樱花.樱花树的每一个节点都有最大的载重\(m\),对于每一个节点\(i\),它的儿子节点的个数和i…
题意:FJ去砍树,然后和平时一样留了 N (2 ≤ N ≤ 100,000)头牛吃草.当他回来的时候,他发现奶牛们正在津津有味地吃着FJ种的美丽的花!为了减少后续伤害,FJ决定立即采取行动:运输每头牛回到自己的牛棚. 每只奶牛i在离牛棚Ti(1 ≤ Ti ≤ 2,000,000) 分钟路程的地方,每分钟吃掉Di(1 ≤ Di ≤ 100)朵花.FJ只能一次带回一头奶牛.弄回一头奶牛i来回需要2*Ti分钟.从带回i号奶牛开始,i号奶牛就不会吃花.请你找出被毁坏的花的最小数量 . 题解:按照排序贪心…
题意:数轴上有 n (1<=n<=25000)个闭区间 [ai, bi],选择尽量少的区间覆盖一条指定线段 [1,t](1<=t<=1,000,000).覆盖整点,即[1,2]+[3,4]可以覆盖[1,4].不可能办到:输出-1 题解:本题为一题区间覆盖贪心问题 区间覆盖贪心题型:n个[ai,bi]区间,选择尽可能少的区间覆盖指定区间[s,t]. 贪心策略:左端点从小到大排序 贪心过程:设置一个变量end表示已覆盖到的区间右端点,另一个变量start为当前已覆盖到的区间右端点. 在…