自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(159)
  • 收藏
  • 关注

原创 P1216 [USACO1.5][IOI1994]数字三角形 Number Triangles【简单的DP递推】

https://www.luogu.com.cn/problem/P1216这是一道非常经典的题目方法一: 从上到小开始递推 不难得出 f[i][j]=max(f[i-1][j-1],f[i-1][j])+w[i][j]对于初始化,无需设置。因为这里的值没有负数,故边界不用设置为负无穷。最后的结果就是在最后一层的所有的结果中取一个max即可。#include<bits/stdc++.h>using namespace std;const int N=1e3+10;int .

2021-10-31 22:35:29 185

原创 B. A and B and Compilation Errors【1100 / 思维】

https://codeforces.com/problemset/problem/519/B思维: 用异或的思想,其实也可以用和做差的思想。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int a[N],b[N],c[N],n;int main(void){ int n; cin>>n; int temp1=0,temp2=0; for(int i=1;i<=n;i++) ci.

2021-10-31 22:16:00 141

原创 A. Laptops【1100 / 排序】

https://codeforces.com/problemset/problem/456/A#include<bits/stdc++.h>using namespace std;const int N=1e5+10;vector<pair<int,int>>ve;int n;int main(void){ cin>>n; for(int i=0;i<n;i++) { int a,b; cin>>a>>.

2021-10-31 14:48:28 173

原创 500. 键盘行【模拟】

https://leetcode-cn.com/problems/keyboard-row/class Solution {public: vector<string> findWords(vector<string>& ve) { string s[3]={"qwertyuiop","asdfghjkl","zxcvbnm"}; vector<string>ans; for(int i=0;.

2021-10-31 14:28:21 127

原创 A. Valera and Antique Items【1000 / 水题】

https://codeforces.com/problemset/problem/441/A#include<bits/stdc++.h>using namespace std;int n,m;vector<int>ans;int main(void){ cin>>n>>m; for(int i=0;i<n;i++) { int k; cin>>k; bool flag=0; for(int j=0;j&lt.

2021-10-31 08:23:27 179

原创 C. Element Extermination【1400 / 思维 贪心 结论】

https://codeforces.com/problemset/problem/1375/C详细题解方法一:用栈来模拟,贪心的删除。如果栈为空那么直接入栈如果栈顶元素大于等于a[i],即不满足删除的条件,那么也直接入栈满足条件了,贪心的删除栈内此时只有一个元素,故直接跳过,不用入栈栈内有多个元素,那么入栈分类的讨论。取栈顶的两个元素,如果此时不满足删除条件了,那么直接重新入栈归位,退出循环如果经过删除后的栈,栈内只剩一个了那么也退出。取栈顶的两个元素,如果此时满足删除条件了,.

2021-10-29 10:37:33 209

原创 B. I Hate 1111【1400 / 思维 规律】

https://codeforces.com/problemset/problem/1526/B你会发现: 1111 11111…都会由 11,111构造出来。故x=11a+111b故只要判断 (x-111b)%11 是不是0即可详细题解#include<bits/stdc++.h>using namespace std;int main(void) { int t; cin>>t; while(t--) { long long int n; cin.

2021-10-29 09:33:55 223

原创 2020河南ccpc 问题 A: 班委竞选 【签到 / 排序】

https://codeforces.com/problemset/problem/1526/B#include<bits/stdc++.h>using namespace std;const int N=110;vector< pair<int,int> > ve[110]; bool cmp(pair<int,int> a,pair<int,int> b){ if(a.first==b.first) return a.sec.

2021-10-29 08:56:04 250

原创 D. Zero Remainder Array【1400 / 思维 规律】

https://codeforces.com/problemset/problem/1374/D模拟做法: TLE了。大致思路用一个小根堆来存储。如果堆内为空,说明直接就是合法的直接输出0否则直接模拟,例如k=5,当2有两个时,第一个2是可以直接加的,但是第二个2就不可以了,我们得走一轮即2+k==2+5以此类推。#include<bits/stdc++.h>using namespace std;const int N=1e5*2+10;typedef long long.

2021-10-28 22:51:17 264

原创 Kanade Doesn‘t Want to Learn CG【ccpc网络赛 计算机几何 未完成】

http://acm.hdu.edu.cn/showproblem.php?pid=7127#include<bits/stdc++.h>using namespace std;#define int long longsigned main(){ int T; cin>>T; while(T--) { int a,b,c; cin>>a>>b>>c; int x.

2021-10-28 22:19:05 266

原创 离散化的两种方式

方法一: vector实现离散化#include<bits/stdc++.h>using namespace std;vector<int>nums;int n,x;int main(void){ cin>>n; for(int i=0;i<n;i++) cin>>x,nums.push_back(x); sort(nums.begin(),nums.end()); nums.erase(unique(nums.begin(),num

2021-10-28 15:16:02 377

原创 C. Rotation Matching【1400 / 思维 数组循环移动】

https://codeforces.com/problemset/problem/1365/C因为他这个是一块移动的,就是说整个数组移动的。我们可以用一个桶来存储,每一个数到达它正确位置所需的步数。最后枚举每一个桶即可,求一个最大的。#include<bits/stdc++.h>using namespace std;const int N=1e5*4+10;int a[N],b[N],cnt[N],n; int main(void){ cin>>n; in.

2021-10-28 15:04:08 200

原创 B. Same Parity Summands【1200 / 构造】

https://codeforces.com/problemset/problem/1352/B就是构造分为以下几种情况:要分为m个数,分m-1个1 剩下的数如果还是奇数说明可以,那么就输出要分为m个数,分m-1个2 剩下的数如果还是偶数说明可以,那么就输出其它的就是不可行的。#include<bits/stdc++.h>using namespace std;int main(void){ int t; cin>>t; while(t--) { in.

2021-10-28 12:24:18 237

原创 D. Pair of Topics【1400 / 思维 二分】

https://codeforces.com/problemset/problem/1324/D我们直接将c数组构造出来,然后从小到大排序。默认ci>cj 避免重复计算然后对于每一个我们只要从后面找到满足条件的最小下标即可。然后加上那一段的个数。你可能会好奇,排序后的顺序不是会打乱原来的顺序么?其实是我所谓的。因为我们构造的数组既然有 ci>cj i>j 必然会有其相反所对应的,故无所谓了。#include<bits/stdc++.h>using nam.

2021-10-28 12:07:08 189

原创 二维vector的初始化

const int n=5,m=10;vector< vector<int> > ve(n,vector<int>(m,0));//n行m列

2021-10-28 09:31:54 186

原创 B. Water Lily【1000 / 计算几何】

https://codeforces.com/problemset/problem/1199/B#include<bits/stdc++.h>using namespace std;int main(void){ double h,l; cin>>h>>l; printf("%.13lf",(l*l-h*h)/2/h); return 0;}

2021-10-28 09:29:50 144

原创 869. 重新排序得到 2 的幂【枚举】

https://leetcode-cn.com/problems/reordered-power-of-2/class Solution {public: vector<int> check(int x) { vector<int>ve; while(x) ve.push_back(x%10),x/=10; sort(ve.begin(),ve.end()); return ve; } .

2021-10-28 08:47:19 124

原创 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&lt.

2021-10-27 22:27:23 209

原创 C. Number Game【1400 / 博弈论】

https://codeforces.com/problemset/problem/1370/C分为一下几种情况:为1必输为2必赢为奇数必赢为偶数分类讨论如果存在某一个奇数因子,使得除以这个奇数因子后其结果是偶数且不为2,那么就把问题又甩给了对方。我必赢#include<bits/stdc++.h>using namespace std;int main(void) { int t; cin>>t; while(t--) { int n; cin&.

2021-10-27 19:53:38 288

原创 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 140

原创 C. Drazil and Factorial【1400 / 构造】

https://codeforces.com/problemset/problem/515/C题目给的意思就是不包含0,1 且 f(x)==f(a) 且x要尽量的大。自己的垃圾模拟做法:#include<bits/stdc++.h>using namespace std;typedef long long int LL;bool check(int x){ for(int i=2;i<=x/i;i++) if(x%i==0) return true; ret.

2021-10-27 10:34:55 242

原创 B. Phoenix and Beauty【1400 / 构造 构造循环结】

https://codeforces.com/problemset/problem/1348/B如果给定的数组的元素种类大于我们的m,则一定构造不出来。否则的话,我们就构造一个不重复的m的序列,输出n次即可。相关题解相关题解相关题解#include<bits/stdc++.h>using namespace std;int a[10004];int main(void) { int t; cin>>t; while(t--) { int n,m; ci.

2021-10-27 09:18:54 156

原创 A. Odd Selection【1200 / 思维】

https://codeforces.com/problemset/problem/1363/A分析可以得出,必须得有一个奇数,其它的必须都是偶数结果才会是奇数。当然两奇数和并后是偶数。所以我们先减1,存一个奇数,剩下的话先拿俩奇数,一对对的拿,应为奇数不够扩展必须俩两拿。剩下的不够的用偶数来补即可。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int a[N],n,t,m;int main(void.

2021-10-27 08:43:17 297

原创 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 200

原创 B. Books【1400 / 二分答案】

https://codeforces.com/problemset/problem/279/B#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int a[N],s[N],n,m;bool check(int len) { for(int i=1;i<=n-len+1;i++) if(s[i+len-1]-s[i-1]<=m) return true; return false;}in.

2021-10-26 16:27:08 177

原创 B. Random Teams【1300 / 组合数学】

https://codeforces.com/problemset/problem/478/B#include<bits/stdc++.h>using namespace std;typedef long long int LL;LL n,m;LL get1(LL n,LL m)//最小 尽量的均分 { LL b=n/m; if(n%m)//不可以平均分 { int temp=n-b*m; LL sum=0; for(int i=1;i<=m;i++) .

2021-10-26 12:56:34 212

原创 B. Pashmak and Flowers【1300 / 思维】

https://codeforces.com/problemset/problem/459/B如果最大值,和最小值不同。那么直接数量相乘。否则就是组合数,从n中选2个。#include<bits/stdc++.h>using namespace std;const int N=1e5*2+10;unordered_map<int,int>mp;int n,a[N];int main(void){ cin>>n; int minv=1e9,maxv=.

2021-10-26 12:20:46 153

原创 496. 下一个更大元素 I【哈希表】

https://leetcode-cn.com/problems/next-greater-element-i/class Solution {public: vector<int> nextGreaterElement(vector<int>& nums1, vector<int>& nums2) { unordered_map<int,int>mp; int n=nums1.size(); .

2021-10-26 10:26:24 120

原创 B. Sort the Array【1300 / 排序】

https://codeforces.com/problemset/problem/451/B如果本身直接有序的话,那么直接输出yes 选 1 1即可。否则的话我们只能选一段逆序的,将其转换看可不可以,如果还不可以就输出no,否则输出yes。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int main(void){ int n; cin>>n; vector<int>a(n.

2021-10-26 09:10:51 322

原创 A. Cut Ribbon【1300 / 暴力 完全背包DP】

https://codeforces.com/problemset/problem/189/A#include<bits/stdc++.h>using namespace std;int main(void){ int n,a,b,c; cin>>n>>a>>b>>c; if(a==1||b==1||c==1) { cout<<n; return 0; } int ans=0; for(int i=0;i.

2021-10-25 20:14:06 215

原创 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>&gt.

2021-10-25 10:01:14 181

原创 B. T-primes【1300 / 思维 数论】

https://codeforces.com/problemset/problem/230/B首先分析一下: 只有三个因子 例如 4 除去1和4 还有一个。我们都知道因子几乎都是一对的出现的,只有平方数是有单个的因子。故必是一个平方数,且1-sqrt(x) 之间不准有多余的因子。说明了 sqrt(x)是一个质数。故可以得出结论质数的平方数只有三个因子#include<bits/stdc++.h>using namespace std;typedef long long LL;.

2021-10-24 20:21:40 386

原创 B. Two Buttons【1400 / 简单的bfs】

https://codeforces.com/problemset/problem/520/B#include<bits/stdc++.h>using namespace std;typedef long long int LL;const int N=1e5+10;LL n,m,dist[N];int bfs(int n){ unordered_map<int,int>mp; queue<int>q; q.push(n),mp[n]++,dist[.

2021-10-24 15:40:18 199

原创 C. Registration system【1300 / 哈希】

https://codeforces.com/problemset/problem/4/C#include<bits/stdc++.h>using namespace std;unordered_map<string,int>mp;int main(void){ int n; cin>>n; for(int i=0;i<n;i++) { string s; cin>>s; if(mp.count(s)==0) cout<&.

2021-10-24 15:28:41 2046

原创 B. Worms【1200 / 二分】

https://codeforces.com/problemset/problem/474/B#include<bits/stdc++.h>using namespace std;typedef long long int LL;const int N=1e5+10;LL a[N],s[N],n,m;int main(void){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i],s[i]=s[i-1]+a[i];.

2021-10-24 15:03:32 233

原创 C. K-th Not Divisible by n【1200 / 思维 找规律】

https://codeforces.com/problemset/problem/1352/C#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; LL a=k%(n-1); if(!a) a=n-1; LL b=k/(.

2021-10-23 23:05:19 193

原创 A. Flipping Game【1200 / 前缀和】

https://codeforces.com/problemset/problem/327/A#include<bits/stdc++.h>using namespace std;int a[105],s[105],ss[105],n;int main(void) { cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i]; int an.

2021-10-23 22:39:32 133

原创 B. BerSU Ball【1200 / 暴力】

https://codeforces.com/problemset/problem/489/B#include<bits/stdc++.h>using namespace std;int n,m,a[105],b[105];map<int,int>mp;int main(void){ cin>>n; for(int i=0;i<n;i++) cin>>a[i]; cin>>m; int cnt=0; for(int i.

2021-10-23 22:23:56 164

原创 A. Cheap Travel【1200 / 暴力】

https://codeforces.com/problemset/problem/466/A#include<bits/stdc++.h>using namespace std;typedef long long int LL; int main(void){ LL n,m,a,b; cin>>n>>m>>a>>b; LL ans=1e9; for(int i=0;i<=n;i++) { for(int j=0;j&.

2021-10-23 17:47:14 198

原创 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 181

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除