贪心
文章平均质量分 90
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
AtCoder Petrozavodsk Contest 001 D - Forest 连通块+并查集+贪心
题意:给出一个由n个点m条边构成的森林,每个点有个权值val[i],额外加一条边(u,v)的花费是val[u] + val[v],且u、v只能被用到一次,添加一些边使得图连通,求最小花费。连通块+并查集+贪心可以先用并查集跑出连通块的个数为x,则需要添加的边的数量为x-1条,需要使用的点的个数为2*(x-1),所以只要n>=2*(x-1)则必定有解。所以我们只要贪心的选出这2*(x-1)个点即可,故先在每个连通块选择一个权值最小的点,这样可以保证每个连通块都会有点和其它的连通块相连,然后剩余的2*(x-原创 2018-02-05 21:52:00 · 802 阅读 · 2 评论 -
UVA - 11475 Extend to Palindrome manacher+贪心
题意:给出一个字符串,在末尾添加尽可能少的字符串,使这个新字符串为回文串,输出新字符串。manacher+贪心先用manacher O(n)的跑出原字符串的以每个i为中心的回文子串,然后应该自己得出的一个manacher的结论if(len[i + j] >= (j - i)/2 + 1) 则字符串s[i......j]为回文子串。也就是从原串的右边开始,向左跑,找到以sz-1为右端点的最大回文子串,标记为ans开始,则输出原串后,从ans-1开始到0按照顺序每个字符依次输出。复杂度 O(n)原创 2017-02-16 18:39:15 · 799 阅读 · 0 评论 -
Codeforces Round #389 (Div. 2) D. Santa Claus and a Palindrome 回文串+贪心+数据结构、字符串
题意:给出k个长度为n的字符串且每个字符串有一个权值,选一些字符串构成一个回文串,使这个回文串的总权值尽可能大,就权值的最大值。回文串+贪心+数据结构、字符串把字符串和权值储存在map<string, vector<int> > mp里,用map<string, bool> flag来标记字符串是否为回文串。选尽可能多的字符串对x + y > 0,x与y互为回文,且xy都优先选大的,其中分成本身是回文串的和不是回文串2类讨论,如果本身是回文串,且个数大于2,而且x + y > 0,则也ans +=原创 2017-01-15 00:45:36 · 945 阅读 · 0 评论 -
Codeforces Round #389 (Div. 2) E. Santa Claus and Tangerines 二分+贪心+记忆化搜索
题意:有n个橘子,每个橘子可以分成ai瓣,但每次只能把 一个完整的橘子或者由一些把构成的部分橘子 分成尽可能相等的两部分,即如果瓣数是偶数则当前只能分成相等的2部分,如果是奇数则分成2部分其中一部分比另一部分多1,然后把这些得到的橘子或者瓣分给k个小朋友,其中小朋友们得到瓣数中的最小值是答案,要求这个答案尽可能大二分+贪心+记忆化搜索由于每个小朋友只能得到一个橘子或者一些由瓣构成的部分橘子,所答案最大为max{ai} 这里ans 属于[1, 1e7],故在(0, 1e7 + 1)内]对答案进行二分(不会原创 2017-01-12 01:25:00 · 964 阅读 · 0 评论 -
Codeforces Round #389 (Div. 2) C. Santa Claus and Robot 贪心+最短路
题意:给定一个路径,让找出尽可能少的关键点,没相邻的2个关键点的路径必须是最短路径贪心+最短路这是一个很有趣的题 Y ^_^ Yans = 0;(px,py)表示最近出现的一个关键点坐标,cnt表示从最近的那个关键点到当前点所走的路程, (x, y)表示当前所在的点的坐标。 然后每步更新cnt及(x, y)后 判断abs(px - x) + abs(py - y) == cnt,如果成立则从最近的一个关键点到当前点一直在根据最短路走,直到每次出现不合理的情况,则上一个点更新为新的最近的关键点,并且原创 2017-01-12 00:58:32 · 766 阅读 · 0 评论 -
Codeforces Round #389 (Div. 2) B. Santa Claus 贪心+字符串处理、易错
题意:给定一个原串和一个新串,它们之中存在一些序偶,(x, y) 在原串的i位置为x,在新串的i位置是y,且x != y 则存在序偶(x, y),原串的所有x在新串中必须只用y表示。一个字母最多出现在一个序偶中,问这样的序偶有多少对。贪心+字符串处理、易错理解懂题意是关键,然后扫一遍就好。一旦存在序偶(x, y) 则x、y之后不能出现在别的序偶中了,原串中的所有x,在新串中的对应位置都必须是y,新串中所有y在原串必须是x,否则ans = -1;扫一遍得到序偶之后,再重新扫一遍,按照一旦存在序偶(x原创 2017-01-12 00:46:04 · 734 阅读 · 0 评论 -
Codeforces Round #386 (Div. 2) D. Green and Black Tea 数论+贪心
题意:喝掉n袋茶,其中a袋绿茶b袋红茶,连续喝相同的茶最多k次,如果可以全喝完则输出喝茶的序列,如果不能则输出NO数论+贪心char a为个数多的那个茶的字母的代表,同理b为少的那个字母,aa为a的个数,bb为b的个数首先int realk = aa / (bb + 1); if(realk * (bb + 1) < aa) realk++; 如果 realk > k 则 ans 为 NO;否则把aa 分成 bb + 1组,int ok = aa % (bb + 1);if(ok == 0){ok原创 2017-01-11 01:24:32 · 799 阅读 · 0 评论 -
Codeforces Round #385 (Div. 2) C. Hongcow Builds A Nation 并查集+贪心+组合学、图论、dfs
题意:有n个点(其中有k个关键点),m条边,要求添加尽可能多的边使得k个关键点之间没有路径,问最多可以添加多少条边。并查集+贪心+组合学、图论、dfs用并查集处理这个图,相关联的点构成一颗树,然后把每棵树的结点数储存在该树的根节点上,然后开始贪心,找出k个关键点里,关键点所在树的结点个数最多的结点 maxci,然后把这个ci 以及它所关联的点 与 所有没有关键点出现的树相结合(free),形成一个连通块,这个连通块的总边数是 (free + maxcnt) * (free + maxcnt - 1)原创 2017-01-10 23:20:45 · 750 阅读 · 0 评论 -
Gym - 101102C C. Bored Judge 线段树+贪心+反向推
题意:给出一系列分数变化情况,x p 表示队伍x获得了p分,求出最终winner在ans事件之后就一直是第一名,求出ans,(如果winner一直是winner,则ans = 1)。线段树+贪心+反向推先计算出每个队伍最终的分数,求出winner的最终分数和队伍编号,然后把每个队伍的分数输入到线段树,用线段数来维护1~n的最大值,存储在team[1]里,然后反向的遍历事件, Modify(ord[i], -p[i]);如果if(team[1] == maxi){ans = i - 1;}一旦不满足就原创 2017-01-14 21:28:21 · 1124 阅读 · 0 评论 -
Gym - 101102B B. The Little Match Girl 贪心、数论、分步
题意:给一串由火柴构成的数字,可以移动火柴改变数字,使得整个数尽可能大,但不能增加或减少数位。贪心、数论、分步每个数字的火柴数分别是a[0] = 6, a[1] = 2, a[2] = 5, a[3] = 5, a[4] = 4, a[5] = 5, a[6] = 6, a[7] = 3, a[8] = 7, a[9] = 6;统计出总火柴数,优先构造出6,此时要判断if(cnt - 6 * i >= (c - i) * 2 && cnt - 6 * i <= (c - i) * 7 && c)即剩原创 2017-01-14 21:16:44 · 1235 阅读 · 0 评论 -
Gym - 101102F F. Exchange 贪心、简单题
题意:可以对字符串进行一个操作,把2个字母互换(这2个字母是不同的),一旦互换必须把所有x换成y,所有y换成x,最多可以进行一次这样的操作,求字典序最小的字符串。 贪心、简单题用cnt[i]表示字母出现的次数,用flag[i]表示之前j字母是否出现过,对于每个字母x,则在1~x-1里找之前没有出现过但在整个字符串出现过的字母进行互换,找出后退出循环,之后进行互换复杂度 O(26*n)原创 2017-01-14 21:36:06 · 335 阅读 · 0 评论 -
Codecraft-17 and Codeforces Round #391 (Div. 1 + Div. 2, combined) B. Bash's Big Day 数论+贪心
题意:给出n个数,选出尽可能多的数,使这些数的gcd不是1.数论+贪心选出尽可能多的数,使这些数的gcd不是1.,则它们的gcd是x,x >= 2,所以可以枚举gcd的值,从2到1e5,然后枚举倍数 j, x * j (x*j < 1e5)必定在x的集合里所以1<=j <=1e5 ,即对于每个i 最多可以枚举j = 1e5 / i 个值i * j,故对于1e5 / x 从1 到1e5积分,得n*lin(n) 约等于 1e6故复杂度 O(nln(n))原创 2017-01-14 01:15:01 · 1375 阅读 · 0 评论 -
Good Bye 2016 C. New Year and Rating 不等式+贪心、数学
题意:rating == 1900是区分各个分组的界限,给出给出n个ci 和 di,表示rating上涨了ci分(ci正为涨分负为掉分) 且当场比赛是在di分区大的,不知道起始的rating,只给出了n场连续的比赛涨分情况和所在分组,求出n场比赛之后可能的rating的最大值。不等式+贪心、数学很棒的题,l = -INF, r = INF,l 表示当前rating可能值的最小值,r表示当前rating可能值的最大值。如果当前分组是div2则r = min(r, 1899),,如果当前是div2原创 2017-01-14 00:32:54 · 1032 阅读 · 0 评论 -
HDU - 2890 Longest Repeated subsequence 后缀数组+二分+贪心、不可重叠子串、离散化
题意:给出一个序列,要求找出出现过至少m次的最长(连续)子序列,求其最长长度和具体字典序最小的序列,且不能有重叠。后缀数组+二分+贪心先离散化,然后跑出后缀数组sa和height数组,然后二分答案,检查的时候,维护height[i] > mid 的sa[i]值及个数,日光个数大于等于m,则把这段区间的sa[i],排序,然后从小的开始贪,相邻的2个,如果间隔小于mid,则去掉大的比去掉小的sa[i]更好,然后讨论下一个,最后判断剩余的sa[i]的两两间隔不小于mid的sa[i]的个数大于等于m,则这就原创 2017-02-19 00:01:41 · 882 阅读 · 0 评论 -
Codeforces Round #394 (Div. 2) C. Dasha and Password 贪心+预处理+枚举
题意:长度为n的密码必须包含至少一个字母一个数字一个非字母非数字的字符,给出n个长度为m的字符串,每个串取一个字符,要求移动最少的步数使所成的密码为合法的密码。贪心+预处理+枚举先贪心的预处理出每个字符串 v[i]的v[i].c表示移动到字母的最少步数,v[i].d表示移动到数字的最少步数,v[i].f表示移动到其它字符的最少步数。先把.c.d.f都初始化为INF,然后扫一遍字符串,如果不存在相应的请求则值依然是INF。因为n <= 50 所以显然是n^3的枚举,即枚举每一个.c.d.f要求它们来自原创 2017-02-01 12:19:59 · 864 阅读 · 0 评论 -
Codeforces Round #394 (Div. 2) D. Dasha and Very Difficult Problem 贪心
题意:数组a、b,由bi - ai 得到ci,要求每个ci都不相同,给定a和p(p为c的压缩之后的保持大小顺序不变的序列),求b。贪心可以令 ci = pi + k,因为p为c的压缩之后的保持大小顺序不变的序列。然后bi = ai + ci = ai + pi + k;然后可以求出bi,这是用maxv = max{bi},minv = min{bi},然后如果 minv~maxv的宽度大于lr的宽度,则ans = -1;否则,把区间minv~maxv 移到 lr里,如果偏小就每个bi都加(l -原创 2017-02-01 13:33:14 · 700 阅读 · 0 评论 -
Codeforces Round #456 (Div. 2) B. New Year's Eve 贪心、构造、位运算、异或和
题意:给出1~n这n个数,最多选k个数,要求,选出的数的异或和最大,求这个异或和。贪心、构造、位运算、异或和首先对于n的二进制有b位,n ^ ((1<<b) - 1)的值必定小于n。所以如果k为1,则只能选ans = n;否则选n和n ^ ((1<<b) - 1)这2个数,当n和 ((1<<b) - 1)相等时依然选n,即 ans = (1<<b) - 1。原创 2018-01-13 17:56:13 · 591 阅读 · 0 评论 -
Codeforces Hello 2018 D. Too Easy Problems 二分+贪心
题意:有m个题目,每个题目有个需要花费的时间ti,以及ai,表示只要最终过题数不超过ai这个题才count。求最大的过题数以及过了哪些题,多种答案则输出任一答案。二分+贪心首先把题目按照ti的为优先级排序,时间少的在前面。然后二分答案,mid表示最终的过题数,check的时候,维护剩余的时间tmp,用cnt表示已选的题目数量,对于题目从左向右扫,每次如果该题的ai<= mid 则 tmp -= ti,当tmp >= 0是cnt++,然后tmp <= 0时break。之后cnt >= mid则返回真原创 2018-01-13 17:45:08 · 592 阅读 · 0 评论 -
Codeforces Hello 2018 C. Party Lemonade 贪心、优先队列
题意:有n种饮料,每种的一份 2^(i-1)升花费ci 卢布,要求总共买L升,花最少的钱,求出最小的花费。贪心、优先队列、乱搞首先把饮料的单价(ci / 2^(i-1))和标号(i)丢如小根堆,然后维护ans = 0 为已购买的饮料的最小花费, resL = L 表示剩余需要购买的饮料, precost = 9e18表示剩下的直接买一份(买的那份可能比resL多)时的最小花费。每次取出堆顶,此时的饮料是最廉价的,如果每份的容量大于剩余的,则刷新precost,此时如果 ans被刷新过,则 prec原创 2018-01-13 17:13:14 · 744 阅读 · 0 评论 -
XVII Open Cup named after E.V. Pankratiev. Eastern Grand Prix. Problem F. Buddy Numbers 贪心、数论、构造
题意:给出一个n,问能不能把1~n这n个数排出一个序列,使得任意相邻的两个数,一个数是另一个数的因数。贪心、数论、构造1 12 2 13 3 1 24 3 1 2 4然后5的时候,也就是当1~n里素数的个数大于2的时候就不好办了,此外这里n == 6的时候还是可以构造出来了, 3 6 2 4 1 5.所以对于n == 1、2、3、4、6的时候是有答案的,直接输出即可,其它的时候都构造不出来,为-1。原创 2017-12-08 14:02:36 · 1057 阅读 · 0 评论 -
Gym - 101173J Jazz Journey 图论、枚举贪心、Interesting
题意:给出一个图,要求把图上的所有边按照给出的顺序跑一遍,求最小代价。其中有单向边u->v、v->u, 和方程u->v->u、v->u->v,对于u->v->u必须先走u->v再走v->u但中间可以断开,且可以只走第一步u->v,对于v->u->v同理。图论、枚举贪心、Interesting首先由于对于u->v->u这样可以中间断开,即u->v, v -> x, x - y, y -> v, v->u,所以可以直接把一对(u,v)构成的2种单向边按顺序提取出来,map<pair<int, int>, v原创 2017-07-21 01:16:21 · 1640 阅读 · 0 评论 -
Codeforces Round #420 (Div. 2) C. Okabe and Boxes 栈+last标记+贪心
题意:有1~n这n个数,给出一个stack的push和pop的序列,要求在执行的过程中用尽可能少的重排次数,使得能够使pop的顺序是1~n的顺序。栈+last标记+贪心1~2*n个操作,用一个last标记最近一次重排的位置,初始为last = 0。然后用一个栈表示上一次重排后push如的元素的栈结构。每次remove,如果当前需要pop的cnt == top则直接从stack pop掉,否则,如果栈空,且mp[cnt]出现的位置在last之前,则可以直接pop, 不然则需要一原创 2017-06-26 19:38:08 · 878 阅读 · 0 评论 -
UESTC 1595 老司机的毒奶 贪心+二叉树+优先队列
题意:给出n个不同的数,每个数可以最多进行ki次操作,每次操作 ai/2。每次操作后n个数必须互不相等。求max{ai}(1<=i<=n)的最小值。贪心+二叉树+优先队列ai的k次ai/2的操作,刚好像是在二叉树上走,也就是这n个数可以丢到一个二叉树里,每次把编号最大的节点,往根的方向走,需找一个没有被标记过的节点,找到最近的一个可行节点则本次操作成功,继续处理新的最大值。故把所有暂时存在的数用map<int, bool> mp标记,且把所有的数丢到优先队列里,每次取出最大的,判断是否存在k,原创 2017-05-16 19:33:35 · 927 阅读 · 0 评论 -
Codeforces Round #402 (Div. 2) C. Dishonest Sellers 贪心、排序
题意:给个物品有2个权值ai和bi,要求至少选k个ai,然后求最小的权值和。贪心、排序v[i].diat = v[i].a - v[i].b; 故这个表示ai和bi的差值,差值越小越应当被选取(可以是负数),所以对v[i].diat进行排序,然后选上前k个的ai,然后对于剩下的n-k个物品,如果diat值为负数则选ai,否则选bi。复杂度 O(nlogn)原创 2017-02-26 21:32:24 · 1031 阅读 · 0 评论 -
Codeforces Round #375 (Div. 2) C. Polycarp at the Radio 贪心+排序
贪心+排序刚开始的时候理解题意错了,以为最小值尽可能大,最大值尽可能小,但其实是中间贪心的过程中把最大值的 cnt[m-1].b的乐队变成最小值的乐队 cnt[0].b,直到 cnt[0].cnt 达到 n / m 就是最大的那个最小值了,而bj 的最大值不用再压缩了。即 val[i].b 表示乐队编号, val[i].cnt 表示该乐队当前表演songs的数量while(最小值 < int(n / m)){ 如果 大于m的 v[j] 还有则把这个v[j] 变成 当前最小值的乐队 val[0].原创 2016-10-16 11:32:51 · 910 阅读 · 0 评论 -
Codeforces Round #345 (Div. 2) B. Beautiful Paintings __ greedy and Bucket_sort
There are n pictures delivered for the new exhibition. The i-th painting has beauty ai. We know that a visitor becomes happy every time he passes from a painting to a more beautiful one.We are allowed to arranged pictures in any order. What is the maximum原创 2016-04-08 21:20:24 · 2296 阅读 · 0 评论 -
Codeforces Round #404 (Div. 2) C. Anton and Fairy Tale 贪心+二分
题意:初始是n,每次放入m,然后拿走i, n' = max(n, n' + m),问i为多少的时候剩余的数为0.贪心+二分首先如果 m >= n 则ans = n;否则贪心,前m天,必定是拿完之后就重新填满的,这个时候剩余 n -= m;然后对这个新的n进行二分,找到最大的cnt,使得 (cnt + 1)*cnt / 2 <= n;然后如果最后得到的cnt,有 (cnt + 1)*cnt / 2 < n; 则还可以再拿一次,最后只有部分人可以拿到1个,cnt ++最后答案就是 ans = m原创 2017-03-16 01:29:18 · 1132 阅读 · 0 评论 -
Codeforces Round #400 (Div. 1 + Div. 2, combined) B. Sherlock and his girlfriend 素数筛法+贪心
题意:给出一个n,表示有2、3、......n+1这n个数,要求给这些数涂色,如果一个数是另一个数的质因数则必须涂不同的颜色。素数筛法+贪心首先其实只有2种数,一种是素数,一种是以这个素数作为其其中一个因数的数,所以最多用2中颜色。用素数的O(nlogn)的筛法,边筛素数边涂色,如果i是素数,则涂1,然后对于i*j,(i*j<= n+1)涂上2.,并标记为非素数。复杂度 O(nlogn)原创 2017-03-22 00:49:13 · 1176 阅读 · 0 评论 -
Codeforces Round #381 (Div. 2) C. Alyona and mex 贪心+构造
题意:给出一系列的区间,每个区间有一个mex值(区间内最小的没有出现过的值),然后要求min{mex} 尽可能的大。构造出这个序列贪心+构造根据题意可知,影响答案的是最小的那个区间的mex,比如最小的区间是 3 6则 0 1 2 3 ,mex = 4;比这个大的区间没有影响,填上 0 1 2 3 不断循环即可,可以直接用2个变量 l、r 维护即可找出这个区间(下面代码用的是小根堆,是本来用另外的做法做的,改的时候就不把O(nlogn)改成O(n)求得最小区间了)ans = r - l + 1;原创 2016-11-27 16:57:52 · 795 阅读 · 0 评论 -
Codeforces Round #380 (Div. 2) C. Road to Cinema 预处理+二重二分法+贪心
题意:从出发点0到目标点s,经过k个加油站,每个加油站可以在瞬间把车子的油箱加油加满,然后有n辆车子可以选择,每辆车有两个属性c、v分别表示花费、油箱容量,此外如果车慢速行驶,则每km耗油1升花时间2mins;如果高速行驶,则每km耗油2升花时间一分钟。求能够在 t 内从0到达s的情况下的最小花费。预处理+二重二分法+贪心把所有的车根据花费为第一优先级升序以容量为第二优先级降序排列然后预处理,使得,排在后面的车子的油箱容量必然大于等于前面的车子的容量,即把那些花费多但油箱容量小的车去掉。扫完后排个原创 2016-11-20 21:36:10 · 792 阅读 · 0 评论 -
UESTC 1170 红与蓝 计算几何、贪心、红蓝点对
贪心的做法预处理所有Ai到O的距离, 然后根据距离排序, 之后依次对每个Bi也求出BiO, 然后二分查找, 然后处理最近的+-100个点, 答案必定在这100或者1000个点之内比赛的时候是+-100 共200个点Accepted的然后比赛结束后试了一下, 我这样的方法至少要+-40 共80个点才能通过那个题目的数据测试好像还有专业计算几何的算法 红蓝点对 ☺☺原创 2016-07-28 22:11:54 · 1684 阅读 · 1 评论 -
URAL 2025 Line Fighting 水题、贪心、均分
贪心尽可能均摊 t = n/k; res = n - t*k; 然后res个 t+1, n - res 个t, 然后算下就好了复杂度 O(n)原创 2016-07-30 23:20:56 · 943 阅读 · 0 评论 -
UESTC 2016 Summer Training #1 Div.2 H - Queue (A) 贪心
贪心每次找钱,都是优先使用 大票, 因为小票具有大额票的所有功能, 而且具有大额票所不具有的功能, 所以每次优先使用大额飘//由于用了自己的一键测试多组数据的版//!前面有些数据没有重置, 白白检查了这么长时间(┬_┬)原创 2016-07-12 21:44:55 · 1673 阅读 · 0 评论 -
Codeforces Round #353 (Div. 2) C. Money Transfers 环、贪心、前缀和推广、好题
首先最多是ans = n-1次,这个时候只有sum总是0;否则, 只有 有一个小区间是 0, 则ans就少1次;所以要找到,尽可能多的sum == 0 的区间。当时一直不知道,环该怎么处理,结束了,后来才想明白, 环不没有影响, 可以把 j ~ n 和 1 ~ i 这个设定为最后一个sum为0的区间,所以找 1 <= i <= j <= n 内的尽可能多的sum == 0的区间就好。环就是两种情况,j~n和1~i分别是两个最短的sum==0的区间;或者j~n和1~i一起组成了一个sum==0的原创 2016-05-17 20:03:19 · 1915 阅读 · 1 评论 -
Codeforces Round #352 (Div. 2) C. Recycling Bottles __ geometry, greedy and pretreat
geometry, greedy and pretreat.First of all, the distant will be sigma{ 2*distan of Bottle to the recycling bin}, then the first choices of the bottle make it different.As we can know, there at least one person should walk to a Bottle and put it to the原创 2016-05-12 11:47:30 · 1857 阅读 · 2 评论 -
Codeforces Round #345 (Div. 2) A. Joysticks __ greedy and simulation
Friends are going to play console. They have two joysticks and only one charger for them. Initially first joystick is charged at a1 percent and second one is charged at a2 percent. You can connect charger to a joystick only at the beginning of each minute.原创 2016-04-08 21:10:36 · 1861 阅读 · 0 评论 -
UESTC 1263 The Desire of Asuna 贪心法&&构造法
首先,如果都很大1,则n-1次。如果一个1则可以减少1次,但如果有一个2,则拆开后如果都可以用上,则也可以减少一次,其它的也是这样。那么凑出足够的1,来连接链,即可。○ 1 ○ 1 ○ 1 ○ 1 ○ 1 ○ 1 ○ 且最后结束的时候必然是这样还剩余的链刚好被那些1连接。贪心策略:先排序,从最小的开始搞,取环凑1。(每取出or凑出一个1消耗一个代价)如果a[i]==0,则i++,len--(剩余的链数--);//最后恰好剩余的链中,最前面的那个链是1也不要紧,它还是作为一个链○处理如果a[i]!=原创 2015-12-17 13:39:45 · 1071 阅读 · 0 评论 -
UESTC 1013 我的魔法栈 贪心法
自从玩DOTA2被集训队里的qzy和acerlawson吊打以后,zentorwie灰心至极,一怒之下把DOTA2给删了。删完游戏之后zentorwie决定找点别的东西玩的。于是他来到了魅力之都——郫县,在一家卖滑板鞋的店里,买了他梦寐以求的……额……魔法栈。这个魔法栈里面可以放n个球,球有两颜色,黑和白。每个球除了颜色以外都是相同的。"我的魔法栈,时尚时尚最时尚。"回家的路上,zentorwie情不自禁地哼起了歌。回家到后,zentorwie马上开始把玩这个栈。他想把栈里的所有球都变成黑色原创 2015-11-28 00:48:31 · 1459 阅读 · 0 评论 -
UESTC 1255 斓少摘苹果 贪心法
斓少家的院子里有N棵苹果树,每到秋天树上就会结出Fi个苹果。苹果成熟的时候,斓少就会跑去摘苹果。斓少摘苹果的方式非常的奇特,每次最多可以选择M个苹果并摘下来。但是摘下来的苹果两两一定不是来自同一棵树,问斓少最少摘多少次,才能使得每个苹果都被摘下来呢?Input第一行输入一个数N和M(1≤M≤N≤106),代表苹果树的数量,和斓少每次最多摘多少个。第二行输入N个数,第i个数Fi(0≤Fi≤106 )代表这一棵树上一共有多少个苹果原创 2015-12-06 00:21:26 · 1044 阅读 · 0 评论 -
UESTC 1261 被神选中的人 贪心法
游戏很简单,每回合,依次会从牌库中随机抽取两张牌,直到游戏结束。如果牌库中的牌不足两张,那么游戏直接结束。当然,每次抽取两张牌会发生以下5种事件之一。1、如果两张都为红桃,即神之相遇,什么事情都不会发生,将这两张牌重新洗进牌库。2、如果两张都是梅花,即魔之相遇,两个恶魔均会死亡,那么就会将这两张牌拿走。3、如果一张为红桃,一张为梅花,即神魔相争,神会死亡,而恶魔会存活。那么会将神牌拿走,将恶魔重新洗进牌库。4、如果一张为方片A,一张红桃,即神之眷顾,这时候,方片A将会有两种选择,他必须选择其中的一原创 2015-12-07 19:00:25 · 1269 阅读 · 0 评论