ACM-枚举
枚举
Echo_ac
不知未来怎样,现在一定全力以赴
展开
-
2021牛客暑期多校训练营8——D,注释详解
题目链接思路我想大家都看了很多题解知道这道题的切入点是c[i]=a[i-1]+a[i]=a[i-1] | a[i] a[i-1]&a[i],然后取看a1的第i位可以取0还是1,或者都可以取,只是对具体操作很迷,那么请看下面的注释!AC代码#include<bits/stdc++.h>#define ll long longusing namespace std;const int N = 1e5+9;int b[N],c[N],d[N]; int main(){原创 2021-08-10 23:09:02 · 116 阅读 · 0 评论 -
2872. 子串分值和——第十一届蓝桥杯省赛第二场C++B组
题目链接文章目录题解:代码题解:细心观察可以发现,对于字符串s, 每个s[i]对答案的贡献为,(i-pre[i])*(n-i+1 ,pre[i]表示,s[i]上一次出现的位置代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5+9;int pre[N];int tmp[30];char s[N];int main() { for(int i=0; i<原创 2021-03-11 16:50:24 · 311 阅读 · 0 评论 -
Educational Codeforces Round 105 (Rated for Div. 2) B. Berland Crossword ——赛后题解
题目链接题意:相信大家都知道题意思路这道题,如果u,r,d,l都<=n,那么则是YES.如果一个边要求涂n个,那么它的两个领边>=1, 如果要求涂n-1个,那么它的两个领边至少一个>=1,我们采用dfs枚举,即可这里的u,r,d,l,采用数组来存,更加方便如果还没懂,可以看看代码,很容易懂的AC代码#include<bits/stdc++.h>using namespace std;#define mem(a,b) memset(a,b,sizeof a)原创 2021-03-03 10:45:02 · 254 阅读 · 2 评论 -
ACwing 466. 回文日期(枚举优化)
点我,我是题目思路:枚举年份,根据年份构造回文日期,再判断日期是否合法,不能直接枚举年月日,否则会超时代码;#include<bits/stdc++.h>using namespace std;int lyear[13]={31,29,31,30,31,30,31,31,30,31,30,31};int year[13] ={31,28,31,30,31,30,31,31,30,31,30,31};//判断改变后的回文数字是否合法bool Isleap(int y){原创 2020-07-31 22:21:18 · 148 阅读 · 0 评论 -
蓝桥杯 日期问题(难的模拟)
题目点这里思路:根据题目意思模拟就行收获:利用stringstream将数字转为字符串int y = 2020; stringstream ss; string s; ss<<y; ss>>s;代码:#include<bits/stdc++.h>using namespace std;int lyear[13] = {31,29,31,30,31,30,31,31,30,31,30,31};int year[13] = {31,原创 2020-07-31 22:12:16 · 137 阅读 · 0 评论 -
蓝桥杯连号区间(思维+枚举)
题目点这里思路:利用一个重要条件,这里包含了1~n的所有数。所以对于一个区间按[l,r],只需要判断r-l 是否与区间的最大值max减去最小值相等即可注意max,min,在枚举下一个l的时候要初始化#include<bits/stdc++.h>using namespace std;const int N = 10010;int a[N];typedef long long LL;int main(){ int n; cin>>n;原创 2020-07-30 11:07:18 · 81 阅读 · 0 评论 -
ATcoder173 C(二进制枚举)
思路:数组b二进制枚举,1~h枚举行,h+1到h+w枚举列AC代码:#include <iostream>using namespace std;const int maxn = 200;char s[maxn][maxn];int main(){ int h,w,k; cin>>h>>w>>k; for(int i=1;i<=h;i++) { for(int j=1;j<=w;j+原创 2020-07-08 21:08:40 · 201 阅读 · 0 评论 -
矩阵消除(二进制枚举,贪心)
题目传送门文章目录思路:AC代码:思路:题目说我们选某几列,某几行,使得我们获得的权值最大。那么我们二进制枚举行,例如有4*4的矩阵,k=4, 1010表示,1行和第4行需要选,剩下2个选列,对应行置为0。那么再取处理后的矩阵的权值和前2大的列即可AC代码:#include <bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 200;int a[maxn][maxn];LL原创 2020-07-08 16:50:45 · 600 阅读 · 0 评论 -
Flip Game(二进制枚举,思维,状态压缩)
题目文章目录思路:思路:只需要枚举第一列,后面的每一列根据前面的列来看是否需要flip要枚举第一列的那些行flip,哪些不反转,不可能写4个for循环我们采用二进制枚举,例如1010表示第一行和第3行要flip.第二列的...原创 2020-07-08 16:43:15 · 664 阅读 · 0 评论