贪心
文章平均质量分 53
Lzed
我好菜啊
展开
-
UVA11134-Fabled Rooks(贪心)
题目链接http://acm.hust.edu.cn/vjudge/problem/34086题意给定一个n x n的棋盘,在棋盘上摆放n个皇后,使其不相互攻击,并且对于每个皇后,给定一个矩阵区域,该皇后只能在这个矩形区域内,输出一个合法方案/impossible思路对于每个皇后,其摆放的x,y坐标是独立的,于是就将题意转化成了两个一维的问题:对于一个皇后,给定区间[l, r],只能在该区间上选择一原创 2016-09-01 13:43:06 · 211 阅读 · 0 评论 -
Codeforces 803C - Maximal GCD(贪心)
题目链接http://codeforces.com/contest/803/problem/C题意给一个数n和一个数k,要求把n分成k个数a1,a2,...aka_1,a_2, ...a_k的和,并且这k个数严格递增,并且使划分出来的这k个数的GCD最大,求划分方案。思路a1+a2+...+ak=na_1 + a_2 + ... + a_k = n 假设其最大的gcd为x,那么就有:x⋅p1+x⋅原创 2017-05-04 00:04:53 · 468 阅读 · 0 评论 -
Leetcode 475 -Heaters(二分 or 贪心)
题意在x轴上给定一堆房子和一些加热器,所有加热器的覆盖半径相同。求最小覆盖半径。思路算法1先排序,然后二分加热器的半径。最后判断是否合法。时间复杂度:O(nlog(INT_MAX))O(nlog(INT\_MAX))算法2先排序,然后O(n)O(n)的去扫一遍。时间复杂度:O(nlog(n))O(nlog(n))我们对于一个房子x,假设它之前的一个房子的加热器是y。那么x的选择为:y, y + 1,原创 2017-02-12 19:23:38 · 293 阅读 · 0 评论 -
Leetcode 321 - Create Maximum Number(贪心)
题意给两个数组nums1和nums2,和一个数字k,要求从nums1里面和nums2里面分别找出一些数字,构成一个新的数字,并且新的数字最大。并且nums1里面取的数字和nums2里面取的数字要保持相对顺序不变。思路之前做过一道类似的题,只给一个数组,找出k个数,维持相对顺序,求能组成的最大的数。那么,这道题,其实就是说,在nums1里面找出x个,nums2里面找出y个,x + y == k,求能组原创 2017-02-08 22:19:49 · 233 阅读 · 0 评论 -
Leetcode330 - Patching Array(贪心)
题目链接https://leetcode.com/problems/patching-array/题意给出一个序列a[],要求往这个序列中添加最少的数字,使这个序列能组成1到n之间的所有数思路算法如下:记录当前拼凑出的最大数字sum,初始为0。tot为我们需要添加的元素值,初始化为0。当sum<nsum < n:若数组中的元素已经全部用完,tot++,加入的元素sum+1sum + 1,并且更新su原创 2017-01-13 23:05:05 · 238 阅读 · 0 评论 -
Codeforces748D-Santa Claus and a Palindrome(贪心,构造)
题目链接http://codeforces.com/contest/748/problem/D思路只要值大于0,那么一定对我们的结果有贡献,那么尽可能的去贪心 首先,不是回文串的字符串我们必须找到它对称的字符串,一起放两边。是回文串的字符串,可能用两个放两边,也可能选出一个放中间。 我们用rem来保存放中间的那个回文串的值,oth保存放两边的回文串(如果其中有一个回文串的值小于0)的小于0的那原创 2016-12-27 13:52:52 · 479 阅读 · 0 评论 -
Codeforces738E-Subordinates(贪心+构造)
题目链接http://codeforces.com/contest/738/problem/E思路所有员工的上下级关系构成一棵树,假设一个员工他有x个superior,那么他就在这棵树的x + 1层,则1, 2, 3, ……, x层至少存在一个员工 我们先不考虑0,那么就将这道题转化成了:我们先将原来的序列排序,得到一个LIS,现在我们可以改变若干个数,使这个序列变成连续的LIS(即任意两个相邻的原创 2016-11-23 15:30:37 · 416 阅读 · 0 评论 -
Codeforces738D-Sea Battle(贪心)
题目链接http://codeforces.com/contest/738/problem/D思路假设开始时有tot个点可以放船,只需要将可以放船的位置减少到a - 1个,那么此后总能射击成功 可以贪心的去想这个问题,要使无论如何都能成功,那么可以假设开始时的tot最大, tot最大的情况及就是所有船连着放在一起(中间如果有空位,明显不是最优)然后去射击掉tot - (a - 1)个位置即可代码#原创 2016-11-22 22:12:56 · 391 阅读 · 0 评论 -
Codeforces738C-Road to Cinema(二分答案+贪心)
题目链接http://codeforces.com/contest/738/problem/C思路首先二分一下汽车需要的最少装油量g,然后判断g是否合法 判断方法:贪心 因为在每个加油点加油不花费任何时间和金钱,因此其实每个加油点的作用是将线段划分为若干段,只需要判断每段是否满足即可 对于汽油量不够或者足够一直加速很好判断,只需要判断得加速一段时间再匀速一段时间的即可,对于一段,设长度为L,原创 2016-11-20 21:02:05 · 512 阅读 · 0 评论 -
Codeforces725D-Contest Balloons(优先队列+模拟)
题目链接http://codeforces.com/contest/725/problem/D思路贪心,每次选择气球比自己多,并且飘起来需要最小气球的队伍,将气球给他 但是每个给完气球后之前比自己气球少的队伍会更新,因此用优先队列来维护每次状态代码#include <iostream>#include <cstring>#include <stack>#include <vector>#i原创 2016-10-30 16:30:57 · 284 阅读 · 0 评论 -
UVALive3902-Network(dfs)
题目链接http://vjudge.net/problem/UVALive-3902思路先无根树转有根树,然后可以贪心 对于深度大于k的节点,选择深度最深的节点,向上走k步走到节点A,那么将节点A作为一个新的server一定是最优解,然后删去以节点A为根的子树,继续上述过程代码#include <iostream>#include <cstring>#include <stack>#incl原创 2016-11-08 16:38:41 · 266 阅读 · 0 评论 -
Codeforces #370(div2)题解
A. Memory and Crow列个公式推一下就可以了#include <iostream>#include <cstring>#include <stack>#include <vector>#include <set>#include <map>#include <cmath>#include <queue>#include <sstream>#include <ioman原创 2016-09-14 12:37:42 · 408 阅读 · 0 评论 -
UVA10382-Watering Grass(贪心)
题目链接http://acm.hust.edu.cn/vjudge/problem/21419题意给定一个长方形,并且给定一系列圆的圆心p和半径r,要求用最小的圆将长方形覆盖住思路区间覆盖问题,关键是怎么转化为区间,因为只需要覆盖住长方形,所以我们可以只考虑长方形和圆相交的部分 如图,这样就将圆的覆盖转化成了区间覆盖问题感觉这题的精度比较神奇,最先加了eps一直WA,后来没有考虑精度竟然直接A原创 2016-08-12 00:05:54 · 407 阅读 · 0 评论 -
Codeforces 803D - Magazine Ad(二分)
题目链接http://codeforces.com/contest/803/problem/D题意字符串分成最大k行,使最大的那一行长度尽量小。 划分要求:空格或者-思路二分 二分一下每行最大多长,然后判断即可。代码#include <bits/stdc++.h>using namespace std;inline int in() {int x; scanf("%d", &x); return原创 2017-05-04 00:08:08 · 329 阅读 · 0 评论