贪心算法
Myriad_Dreamin
这个作者很懒,什么都没留下…
展开
-
Educational Codeforces Round 34 (Rated for Div. 2) C - Boxes Packing
找众数的数字有多少个。 例子 4 2 3 3 排序后变成 4 3 3 2 容易证明众数数字的个数就是最大合并的盒子的数目。#include <cstdio>#include <algorithm>using namespace std;int box[5005];int main(){ int i,n,cnt=1,maxcnt=0; scanf("%d",&n)原创 2017-12-22 23:08:19 · 157 阅读 · 0 评论 -
牛客练习赛33 A,B,C,D,E,F
A - tokitsukaze and Counting求[L,R][L,R][L,R]之间有多少个数能被xxx整除.考虑前缀[1,L][1,L][1,L],一共有L/xL/xL/x个数字是xxx的倍数.签到题不多讲…#include &amp;lt;cstdio&amp;gt;int main(){ int T; scanf(&quot;%d&quot;,&amp;amp;T); while(T原创 2018-12-07 22:20:23 · 580 阅读 · 0 评论 -
Codeforces Round #525 Div. 2 1088E. Ehab and a component choosing problem(贪心,dfs)
1.答案是全局最大正分量。证明:假设有一分量S=max{val(S)∣S⊂G}S=\max\{val(S)|S\subset G\}S=max{val(S)∣S⊂G}.那么任意其它分量val(S′)⩽val(S)val(S&amp;amp;#x27;)\leqslant val(S)val(S′)⩽val(S).所以对任意kkk划分的分量,1k∑i=1kval(S1)⩽1kkval(S)=val(S)...原创 2018-12-05 03:19:30 · 195 阅读 · 0 评论 -
Codeforce Educational Codeforces Round 55 (Rated for Div. 2) E - Increasing Frequency(尺取法)
考虑CCC和非CCC的贡献.对于每一个数字x≠Cx\neq Cx̸=C,其[l,r][l,r][l,r]贡献是:[l,r][l,r][l,r]中所有的CCC为−1-1−1,xxx为111.用尺取法对每一个数字的贡献序列暴力求解。容易知道如果合并所有的111和−1-1−1,生成的贡献序列的总长度⩽2n\leqslant 2n⩽2n,从而算法复杂度为O(n)O(n)O(n).#include ...原创 2018-11-29 02:22:14 · 201 阅读 · 0 评论 -
BUPT kamiyoru's training #1 codeforces#486div.3
A - Diverse Team签到题就不多说了。#include <cstdio>int find[105];int main(){ int n,k,distinc=0,a; scanf("%d%d",&n,&k); for(int i=1;i<=n;i++){ scanf("%d",&a); ...原创 2018-06-19 01:55:57 · 296 阅读 · 0 评论 -
Codeforces #488div.2 - 994B - Knights of a Polygonal Table(堆+贪心)
很明显要维护一个大小为k的小顶堆,每次判断小顶堆是否值得被剔除。 需要注意两点: ①力量相同的骑士共用一个堆状态; ②堆为0时可能会导致取空堆的情况; ③10*10^9&gt;INTMAX#include &lt;cstdio&gt;#include &lt;queue&gt;#include &lt;algorithm&gt;using namespace std;struc原创 2018-06-17 03:08:23 · 402 阅读 · 2 评论 -
BUAAOJ 413 417 453 455 2016级C++第二次上机
417 - A - 自习室之神2x2的01矩阵,判断: 如果常朔荣可以坐下,输出“ConstSR is studying” 如果没有空座位,输出“ConstSR needs space” 如果有空座位但相邻位置有女生,输出“ConstSR hates girls”模拟。#include<cstdio>int s[10];int main(){ int ...原创 2018-02-21 01:38:28 · 429 阅读 · 0 评论 -
BUAAOJ 132~134 136~139 2015级C++第七次练习赛
132 - A - 胡乱走的和尚题意: 对于这样一个矩阵,和尚从1出发,经过一系列上下左右乱走问最后在哪,如果走出去就完蛋啦。 123⋮nn+1n+2n+3⋮n+n2n+12n+22n+3⋮2n+n.........⋱...(n−1)n+1(n−1)n+2(n−1)n+3⋮(n−1)n+n1n+12n+1...(n−1)n+12n+22n+2...(n−1)n+23n+32n+3...(n...原创 2018-02-21 01:06:05 · 399 阅读 · 0 评论 -
2018 BUPT Winter Training #4 Div.2
A - Stall Reservations 最小堆维护畜栏的工作区间即可。#include <cstdio>#include <queue>#include <algorithm>#define F(_i,_u) for(int _i=0;_i<(_u);_i++)#define FF(_i,_l,_r) for(int _i=_l;_i...原创 2018-03-07 21:57:58 · 269 阅读 · 0 评论 -
Codeforces Hello 2018 - C - Party Lemonade
以平均花费排序,在“哪怕’吃一点小亏’少打点Lemonade”和“就是图便宜,我直接一次买够花费更少的Lemonade”之间决策,决策方法就用递归。#include #include #include using namespace std;struct costs{ double cost; int l,orgcs;}c[35];int n,cs;long lon原创 2018-01-09 01:03:36 · 260 阅读 · 0 评论 -
2018 BUPT Winter Training #2 Div.2
A - 数塔给你一个数字金字塔,每个节点有值a" role="presentation" style="position: relative;">aaa,求根节点到叶节点的值的最大和 以矩阵的方式存储,有: dp[i][j]=a[i][j]+max(dp[i−1][j],dp[i−1][j−1])" role="presentation" styl原创 2018-01-31 17:22:51 · 331 阅读 · 0 评论 -
北航OJ 0050~0052 0055 0056 0064 0065 2014级第二次算法上机
0050 零崎的补番计划Ⅰ 找第k大元素。 思路:分治。#include #include int a[1000005],b[500005],c[500005];void find(int* d,int* e,int* f,int k,int pi){ int i,lower=0,bigger=0,num=*(d+1+pi/2);原创 2018-01-05 16:52:09 · 599 阅读 · 0 评论 -
Codeforces Good Bye 2017 F - New Year and Rainbow Roads
一、如果升序中没有G颜色点: 那么我们找到第一个B颜色点prb(prev-blue)和最后一个B颜色点sub(succ-blue),和第一个R颜色点prr(prev-red)和最后一个R颜色点suc(succ-red),最优的方案是: cost=xsub−xprb+xsur−xprrcost=x_{sub}-x_{prb}+x_{sur}-x_{prr} 如果某个颜色也不存在,则记Δx=0。二原创 2017-12-30 13:26:37 · 414 阅读 · 0 评论 -
洛谷P1005 矩阵取数游戏
也是从这里开始更会写高精度运算了。 贪心算法和dp很简单,只是加上了高精度而已。#include <iostream>#include <algorithm>#include <cstring>#define mem(_x) memset(_x,0,sizeof(_x))#define fs(_x,_y) for(int _x=1;i<=_y;_x++)#define fb(_x,_y)原创 2017-12-30 23:06:40 · 255 阅读 · 0 评论 -
Codeforces Round #454 (Div. 2, based on Technocup 2018 Elimination Round 4) A - Masha and Bears
根据题意小熊和masha两人都可以坐最小的车并且喜欢。并且这masha的身材也严格小于中熊和大熊的身材,因为如果不是严格小于,中熊和大熊喜欢的车masha不可能不喜欢。在这个前提下,小熊和masha两者取大则两者都喜欢,中熊和大熊都取两倍的车#include <iostream>using namespace std;int main(){ int a,b,c,d; cin>>a原创 2017-12-24 01:49:16 · 165 阅读 · 0 评论 -
Codeforces Testing Round #14 (Unrated) C. Minimum Sum
给你仅含有字符’a’~’j’的字符串,让你用字符’0’~’9’替换其中的字符,使得替换后所有字符串代表的整数之和最小,假设字符串并不会出现前导零。 数据规模:n(1<n<1000)个字符串,所有字符串的长度小于等于6。 依然是贪心… 我们知道: ①如果一个字符出现在高位的次数越多,那么用同样的数字替换它的代价越高。 ②用同样的数字替换同一个字母,高一位的代价等于低一位的代价的十倍。 所以原创 2017-12-23 01:42:46 · 324 阅读 · 0 评论 -
Codeforces Testing Round #14 (Unrated) A - The Way to Home
贪心,从现在的位置+d开始搜索’1’,如果搜索到了就跳上去,如果没搜索到就失败,如果最后跳到了,就成功,输出跳的次数#include <iostream>#include <string>#define min(_x,_y) ((_x<_y)?(_x):(_y))using namespace std;string lilies;int main(){ int now=0,j,n,原创 2017-12-22 23:42:18 · 291 阅读 · 0 评论 -
Codeforces Round #451 (Div. 2) E - Squares and not squares
做两种标记,一个是需要改变为完全平方数的need[]数组,一个是不需要改变为完全平方数的noneed[]数组。并记录已经是完全平方数的个数bal。 数据处理:将不予考虑的数字设置为MAX,这样排序的时候就自动排到最后面去不再干扰取数字。#include <cstdio>#include <cmath>#include <algorithm>using namespace std;int原创 2017-12-22 23:11:45 · 186 阅读 · 0 评论 -
2019 BUPT Winter Training #1 div.2
1100C - A - NN and the Optical Illusion难度: 初中几何一道几何题,根据几何关系:RR+r=sinπn. \frac{R}{R+r}=\sin \frac{\pi}{n}.R+rR=sinnπ.#include &amp;lt;cstdio&amp;gt;#include &amp;lt;cmath&amp;gt;const double PI=acos(-1.0);...原创 2019-01-28 19:03:56 · 844 阅读 · 2 评论