贪心
幽殇默
他时若遂凌云志,敢笑黄巢不丈夫。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
B. Young Explorers【1200 / 贪心】
https://codeforces.com/problemset/problem/1355/B#include<bits/stdc++.h>using namespace std;const int N=1e5*3+10;int t,n,a[N];int main(void){ cin>>t; while(t--) { cin>>n; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n).原创 2021-11-29 22:33:02 · 449 阅读 · 0 评论 -
B. AccurateLee【难度: 1200 / 贪心】
https://codeforces.com/problemset/problem/1369/B贪心,先将一段的0/1进行压缩,你会发现.通过这个例子你就会发现: 1100110 -> 0#include<bits/stdc++.h>using namespace std;int main(void){ int t; cin>>t; while(t--) { int n; cin>>n; string s; cin>>s;.原创 2021-11-25 23:08:42 · 490 阅读 · 0 评论 -
A. Chewbaсca and Number【1200 / 贪心】
https://codeforces.com/problemset/problem/514/A#include<bits/stdc++.h> using namespace std;int main(void){ string s; cin>>s; for(int i=0;i<s.size();i++) { int a=s[i]-'0',b=9-a; if(min(a,b)==0&&!i) continue; s[i]='0'+min.原创 2021-11-24 22:30:04 · 186 阅读 · 0 评论 -
B. Most socially-distanced subsequence【1200 / 思维 贪心 常见模型】
https://codeforces.com/problemset/problem/1364/B题解这是一个非常常见的模型,我们开头结尾是必有的,我们只需保存极值点即可。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int t,n,a[N]; int main(void){ cin>>t; while(t--) { cin>>n; for(int i=0;i<.原创 2021-11-17 22:24:38 · 236 阅读 · 0 评论 -
B. Long Number【1300 / 简单的贪心】
https://codeforces.com/problemset/problem/1157/B#include<bits/stdc++.h>using namespace std;int a[15];int main(void){ int n; cin>>n; string s; cin>>s; for(int i=1;i<=9;i++) cin>>a[i]; for(int i=0;i<s.size();i++) { .原创 2021-11-14 17:01:01 · 703 阅读 · 0 评论 -
C. Phoenix and Towers【1400 / 贪心】
https://codeforces.com/problemset/problem/1515/C开m个小根堆,尽可能的平分。因为题目给出任意的俩数的差是小于x的,故一定有解。#include<bits/stdc++.h>using namespace std;const int N=1e5*3+10;typedef pair<int,int> PII; int a[N],ans[N],t,n,m,x;int main(void){ cin>>t; w.原创 2021-11-14 16:32:06 · 878 阅读 · 0 评论 -
A. Strange Birthday Party【1300 / 思维 贪心】
https://codeforces.com/problemset/problem/1470/A题目给的礼物的价格是单调递增的,故让序号大的人先拿小的礼物,因为如果不拿礼物那么给的钱是一个特别靠后的一个大值。故编号大的先拿最小的礼物。#include<bits/stdc++.h>using namespace std;const int N=1e5*3+10;int a[N],b[N],t,n,m;//b[i]是递增的 int main(void){ cin>>.原创 2021-11-13 15:02:56 · 452 阅读 · 0 评论 -
B. Quasi Binary【1400 / 贪心】
https://codeforces.com/contest/538/problem/B数字中的最大数字就是其长度,对于每一位数字都尽可能地均分。#include<bits/stdc++.h>using namespace std;int main(void){ string s; cin>>s; int m=s.size(); int n=0; for(int i=0;i<s.size();i++) n=max(n,s[i]-'0'); string a.原创 2021-11-11 16:23:08 · 279 阅读 · 0 评论 -
C. Team【1400 / 思维 贪心】
https://codeforces.com/contest/401/problem/C分三种情况考虑:n==m显然可以n>m 我们尽量 10 或 01 先搞,尽可能的消耗0,然后剩下的分类讨论n<m 我们先尽可能的 101 先尽量的消耗1,剩下的分类讨论。#include<bits/stdc++.h>using namespace std;int n,m;void solve(){ string ans; bool flag=false; if(n==.原创 2021-11-10 16:42:37 · 117 阅读 · 0 评论 -
B. Anton and currency you all know【1300 / 贪心】
https://codeforces.com/contest/508/problem/B基于贪心的思想,将所有可以交换的偶数的下标存起来。对于每一个可以交换的位置来讨论,如果交换后的值是大于原来的值的就交换,否则不交换。如果到最后了还没交换,那么最后一次必须交换。#include<bits/stdc++.h>using namespace std;string s;vector<int>ve;int main(void){ cin>>s; for(.原创 2021-11-09 17:06:22 · 261 阅读 · 0 评论 -
D. Queue【1300 / 贪心 思维】
https://codeforces.com/problemset/problem/545/D贪心思想,从小到大排序。如果说当前的人是失望的,我们让其排在队尾,让后面的来,依次类推知道找到合理的。#include<bits/stdc++.h> using namespace std;const int N=1e5*2+10;int a[N],s[N],n;int main(void){ cin>>n; for(int i=1;i<=n;i++) cin&g.原创 2021-11-07 22:59:18 · 121 阅读 · 0 评论 -
C. Element Extermination【1400 / 思维 贪心 结论】
https://codeforces.com/problemset/problem/1375/C详细题解方法一:用栈来模拟,贪心的删除。如果栈为空那么直接入栈如果栈顶元素大于等于a[i],即不满足删除的条件,那么也直接入栈满足条件了,贪心的删除栈内此时只有一个元素,故直接跳过,不用入栈栈内有多个元素,那么入栈分类的讨论。取栈顶的两个元素,如果此时不满足删除条件了,那么直接重新入栈归位,退出循环如果经过删除后的栈,栈内只剩一个了那么也退出。取栈顶的两个元素,如果此时满足删除条件了,.原创 2021-10-29 10:37:33 · 192 阅读 · 0 评论 -
B. Subsequence Hate【1400 / 贪心】
https://codeforces.com/problemset/problem/1363/B通过分析只能变成一下几种情况:00000011111110000011111111100其实00000和11111在上面两个中包含了,不过这样更清晰一点。用前缀和来维护一段区间有多少个1.#include<bits/stdc++.h>using namespace std;int solve(string s){ int cnt1=0; for(int i=0;i<.原创 2021-10-27 22:27:23 · 194 阅读 · 0 评论 -
B. Amr and Pins【1400 / 贪心】
https://codeforces.com/problemset/problem/507/B你会发现我们每次最多可以移动2r的距离。 如果走了很多2r之后我们还有一些不足2r的距离那么我们必须得再走一步。#include<bits/stdc++.h>using namespace std;int main(void){ double r,x,y,xx,yy; cin>>r>>x>>y>>xx>>yy; double .原创 2021-10-27 15:46:38 · 129 阅读 · 0 评论 -
C. Exams【1400 / 贪心 + 排序】
https://codeforces.com/problemset/problem/479/C先按照老师安排的顺序,从小到大排序,然后看每次选a还是b且可以保证递增且最小#include<bits/stdc++.h>using namespace std;vector<pair<int,int>>ve;int main(void){ int n; cin>>n; for(int i=0;i<n;i++) { int x,y; ci.原创 2021-10-26 16:50:13 · 190 阅读 · 0 评论 -
C. Alternating Subsequence【1200 / 贪心 压缩】
https://codeforces.com/problemset/problem/1343/C就是压缩,将一连串的负数保存一个最大的,将一连串的正数存一个最大的。#include<bits/stdc++.h>using namespace std;typedef long long int LL;const int N=1e5*2+10;LL a[N],t,n;int main(void){ cin>>t; while(t--) { cin>>.原创 2021-10-25 10:01:14 · 161 阅读 · 0 评论 -
C. Given Length and Sum of Digits...【1400 / 贪心】
https://codeforces.com/problemset/problem/489/C就是贪心,小的是开头1从后往前尽量多点9大的是开头尽量多的9.注意边界,很恶心。#include<bits/stdc++.h>using namespace std;int m,n;int main(void){ cin>>m>>n; if(n==0&&m==1) { cout<<"0 0"; .原创 2021-10-23 11:12:58 · 164 阅读 · 0 评论 -
B. Vanya and Lanterns【1200 / 贪心 二分】
https://codeforces.com/problemset/problem/492/B贪心#include<bits/stdc++.h>using namespace std;const int N=1e3+10;double a[N];int n,m;int main(void){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); double l.原创 2021-10-23 09:40:59 · 230 阅读 · 0 评论 -
B. Taxi【1100 / 贪心】
https://codeforces.com/problemset/problem/158/B1-3 2-2 2-1-1尽量多配对#include<bits/stdc++.h>using namespace std;int a[10],n,x;int main(void){ cin>>n; for(int i=0;i<n;i++) cin>>x,a[x]++; int ans=a[4]; while(a[3]&&a[1]) a.原创 2021-10-22 21:45:13 · 152 阅读 · 0 评论 -
B. Ania and Minimizing 【1000 / 贪心 】
https://codeforces.com/problemset/problem/1230/B#include<bits/stdc++.h>using namespace std;int main(){ int n,m; cin>>n>>m; string s; cin>>s; if(n==1&&m>=1) puts("0"); else { if(m&&s[0]!='1') s[0]='1',m.原创 2021-10-22 16:06:19 · 145 阅读 · 0 评论 -
B. Polycarp Training【1000 / 贪心 小根堆】
https://codeforces.com/problemset/problem/1165/B就贪心,用一个小根堆维护即可#include<bits/stdc++.h>using namespace std;const int N=1e5*2+10;priority_queue<int,vector<int>,greater<int>>heap;int a[N],n;int main(void){ cin>>n; for(i.原创 2021-10-20 13:24:17 · 111 阅读 · 0 评论 -
B. DZY Loves Strings【1000 / 贪心】
https://codeforces.com/problemset/problem/447/B简单的贪心,添加权重最大的值即可。#include<bits/stdc++.h>using namespace std;int a[30],k;int main(void){ string s; cin>>s; cin>>k; int temp=0; for(int i=0;i<26;i++) cin>>a[i],temp=max(temp.原创 2021-10-20 10:01:08 · 107 阅读 · 0 评论 -
C. Numbers on Whiteboard【1000 / 贪心】
https://codeforces.com/problemset/problem/1430/C从小到大排序,依次选两个最大的合并。可以得出合并后的值依次是往左移的。故一定是最优的。#include<bits/stdc++.h> using namespace std;int main(void) { int t;cin>>t; while(t--) { int n; cin>>n; vector<pair<int,int>&g.原创 2021-10-17 15:21:26 · 144 阅读 · 0 评论 -
A. Buying Torches【1000 / 贪心】
https://codeforces.com/problemset/problem/1418/A#include<bits/stdc++.h>using namespace std;typedef unsigned long long int LL;int main(void){ int t; cin>>t; while(t--) { LL x,y,k; cin>>x>>y>>k; LL sum=k*y+k;//总的木棒数.原创 2021-10-11 10:40:48 · 109 阅读 · 0 评论 -
B. Maximum Cost Deletion【1000 / 思维 贪心】
https://codeforces.com/problemset/problem/1550/B首先我们要知道,如何才可以够贪。情况有如下两种情况:不合并,那么总的值:n*a+n*b合并,总的价值:n*a+x*b其中x为段数那么关键就是求x,最后比较大小即可。101有三段,对应的x是 2 101->111010有四段,对应的x是3 1010->101>1110101有五段,对应的x是3 10101->1101->1111可以得出结论: x=cnt.原创 2021-10-05 10:05:15 · 134 阅读 · 0 评论 -
A. Gamer Hemose【1000 / 贪心】
https://codeforces.com/contest/1592/problem/A找最高的两把武器轮流打即可。#include<bits/stdc++.h>using namespace std;const int N=1e5*2+10;int t,n,m,a[N];void solve(){ cin>>n>>m; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); int res=m.原创 2021-10-04 18:37:34 · 218 阅读 · 0 评论 -
B. Red and Blue【1000 / 思维】
https://codeforces.com/problemset/problem/1469/B题目的意思就是给了我们两个数组,每一个数组的顺序,在合并后的数组里是不变的。你会发现俩数组的贡献是没有关系的。即我们在数组A中取一个最大的前缀和。B中也去一个最大的前缀和。输出这两的和即可。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int a[N],b[N],n,m,t;int main(void).原创 2021-10-01 09:15:55 · 156 阅读 · 0 评论 -
B. Cormen — The Best Friend Of a Man【1000 / 贪心】
https://codeforces.com/problemset/problem/732/B只要判断后面即可,不过感觉题目有点不清楚就是n==1的情况该咋办,答案是直接输出原来的即可。#include<bits/stdc++.h>using namespace std;int a[1005];int main(void){ int n,k; cin>>n>>k; for(int i=0;i<n;i++) cin>>a[i]; int.原创 2021-09-24 08:42:53 · 104 阅读 · 0 评论 -
B. Balanced Remainders【1000 / 思维 贪心】
https://codeforces.com/problemset/problem/1490/B你会发现余数为0的个数减1,则余数为1的个数必加1.以此类推。我们以中间余数为1的来讨论#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int a[N];int main(void){ int t; cin>>t; while(t--) { int n; cin>>n; .原创 2021-09-23 09:49:58 · 158 阅读 · 0 评论 -
A. K-divisible Sum 【1000 / 贪心】
https://codeforces.com/problemset/problem/1476/A尽可能的平分#include<bits/stdc++.h>using namespace std;typedef long long int LL;int main(void){ int t; cin>>t; while(t--) { LL n,k; cin>>n>>k; int cnt=0; if(n>k) //n>k .原创 2021-09-20 09:36:55 · 235 阅读 · 0 评论 -
B. Maria Breaks the Self-isolation【1000 / 思维 贪心】
https://codeforces.com/problemset/problem/1358/B题目的意思是: 我们一次可以叫一堆的奶奶,奶奶的人数必须大于等于ai。故从小到大排,从后到前枚举,第一个符合条件的就是最大的。因为后面的条件满足了前面的一定满足。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int a[N];int main(void){ int t; cin>>t; wh.原创 2021-09-19 22:49:10 · 131 阅读 · 0 评论 -
B. New Theatre Square【难度 1000 / 贪心 模拟】
https://codeforces.com/problemset/problem/1359/B#include<bits/stdc++.h>using namespace std;char a[110][1100];int main(void){ int t; cin>>t; while(t--) { int n,m,x,y; cin>>n>>m>>x>>y; int ans=0; for(int i=0.原创 2021-09-19 21:36:34 · 126 阅读 · 0 评论 -
【2021.5.27】3580. 整数配对
题目地址贪心:排序后,计算相邻两者的差的和。#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int a[1000005];int main(void){ int n; scanf("%d",&n); int ans=0; for(int i=1;i<=n;i++) scanf("%d",&a[i]); s.原创 2021-06-15 14:19:27 · 186 阅读 · 0 评论 -
【2021.5.25】3565. 完美矩阵
题目地址这道题我觉得出的不错。通过题目的分析你会得出如下的结论。题目说明每一行每一列都是回文串。故4个角是都相等的。那么问题就转换成了,求不等式:就转换成了仓库选址的那道问题。#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int N=110;typedef long long int LL;LL a[N][N];int main(.原创 2021-06-13 11:04:39 · 321 阅读 · 0 评论 -
主持人的烦恼 【贪心】
https://ac.nowcoder.com/acm/challenge/terminal让好感度差不多的在一块在可以尽可能多的组队。#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int N=1e5+10;int main(void){ int n,m; while(cin>>n>>m) { ..原创 2021-05-18 22:44:36 · 192 阅读 · 0 评论 -
P1109 学生分组 【贪心】
https://www.luogu.com.cn/problem/P1109我们首先要找到有多少人多余上限需要调走(用a表示)所有缺少人数的组需要多少人来补(用b表示)那么,最优的办法当然是让a去补b因为不知道a,b谁更大所以 max(a,b)就是最少的次数#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int main(void){ int .原创 2021-05-12 17:55:57 · 509 阅读 · 0 评论
分享