贪心
GoneWithTheWind_yin
山科大学生
展开
-
Maximum Sequence HDU 6047
题目传送门题意:题意是给了一个a数组,长度是n,然后要求从a[n+1]~a[2*n]的和它的计算方法是这样的; 从a[n+1]开始,a[j]的值等于你在b数组中选一个数字k,那么a[j]的值就是a[j]-j(j<k<i)的最大值思路:这个题目一开始看到就想到了贪心来做,把b数组从小到大来排序进行计算即可。#include <algorithm>#include <cmath>#include原创 2017-08-07 18:10:08 · 196 阅读 · 0 评论 -
I'm Telling the Truth HDU - 3729
题目传送门题意:在一次考试之后,给你其中n个学生的考试排名的范围,问这其中最多有多少个可能是正确的。思路:比赛的时候看到这个题目第一反应是贪心,但是继续往下就没有了思路,后来发现这个其实是一个二分图匹配,但是自己不知道怎么匹配了,然后就在场上对这个序列正反排序进行贪心(面向样例编程),并没有做出来,场下看了题解发现用匈牙利算法就可以了,还是不难的,只有把匹配的方法想好了就行。#include <al原创 2017-08-07 18:16:23 · 325 阅读 · 0 评论 -
Sticks UVA - 307
题目传送门题意:题意很简单,一开始有一些等长的木棍,你把这个木棍分割成了n份,现在给你这n个木棍的长度,让你求出初始木棍的最小长度。思路:这个题,一看到就想到了直接DFS暴力搜长度,大胆的猜测一定是从大到小找,尽可能选大的然后很快就写出来了,然后一直wa调程序调不出来,然后在网上看到一组数据 10 21 14 13 11 9 6 4 3 2 1 发现我的程序过不了这个样例,我的猜测不对,不能纯原创 2017-08-10 21:49:20 · 265 阅读 · 0 评论 -
Fabled Rooks UVA - 11134
题目传送门题意:给你一个n*n的棋盘,在这个棋盘上放置n个车是他们不互相攻击,且第i个车一定在矩形Ri中。思路:这个题可以发现车的横坐标与纵坐标是没有联系的,然后我们可以分开来进行计算,这个题按理说是可以直接贪心过的,但是我的贪心策略错了,然后就不知道怎么改了。就换成了匈牙利算法写匹配,也是一样可以的。#include <algorithm>#include <cmath>#include <c原创 2017-08-14 17:06:38 · 273 阅读 · 0 评论 -
Crane UVA - 1611
题目传送门题意:给你n个数字的序列,你可以一次操作一个区间(区间大小是偶数),交换区间的前半部分与后半部分,用不超过9^6的操作数使这个序列变成一个升序列。思路:这个我一开始理解的是要用最少的操作数,然后就想了好久都没有想出来,但是发现了只需要从左到右进行操作就可以,每一数字最多只需要两次操作就可以了,但是一只输出的操作不是操作次数最少的(十分崩溃啊),然后后来发现不需要次数最少。。。。。。#inc原创 2017-08-25 10:08:26 · 322 阅读 · 0 评论 -
Party Games UVA - 1610
题目传送门题意:输入一个n(n是偶数)个字符串的集合,找一个长度最短的字符串S,使得集合当中恰好有一半的字符串小于等于S,有一半大于等于S,如果有多解的话,输出字典序最小的解。思路:求出来中间的两个字符串然后贪心即可。#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <fstream原创 2017-08-22 16:55:54 · 269 阅读 · 0 评论 -
Meeting with Aliens UVA - 10570
题目传送门题意:有一个1~n的排列,你每次可以都可以交换两个整数,用最少的次数交换次数把这个序列变成一个1~n的环状排列。思路:这个就是直接三重循环暴力就好了,如果当前的这个位置不是的话就找到应该放倒当前的位置的数字,然后进行交换。#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <原创 2017-09-04 17:26:09 · 268 阅读 · 0 评论 -
Generating Permutations UVA - 11925
题目传送门题意:这个题意紫书描述出了一些问题,题意是给你两种操作,让你从原来的严格升序列变成现在的序列。 操作一:交换最前面的两个数字。 操作二:把最后一个数字放到最前面。思路:这个题要逆向思维,然后就可以用冒泡的思想。但是一开始这个样子一直都是死循环,后来发现要把首位是n的情况特判。#include <algorithm>#include <cmath>#include <cstdio>原创 2017-08-28 09:56:54 · 330 阅读 · 0 评论 -
Erasing and Winning UVA - 11491
题目传送门题意:给你n个数字让你从这n个数字当中删除m个,使得最后得到的数字的大小最大。思路:贪心即可,从前面仅可能选择最大的数字。#include <algorithm>#include <cmath>#include <cstdio>#include <cstring>#include <fstream>#include <iostream>#include <list>#incl原创 2017-08-24 10:15:56 · 336 阅读 · 0 评论