随笔分类 - 暴力
brute force
摘要:A,水题不多说。#includeusing namespace std;//#define LOCALint main(){#ifdef LOCAL freopen("in.txt","r",stdin);#endif int n,t; scanf("%d%d",&n,&t); i...
阅读全文
摘要:状压以后,直接暴力枚举,2^20约等于1e6,而且满足bitcount = m的状态很少。#includeusing namespace std;const int maxn = 20+1;double x[maxn],y[maxn],z[maxn];double d[maxn][maxn];dou...
阅读全文
摘要:先枚举两个矩形,每个矩形横着放或竖着放,把一边拼起来,如果不是拼起来有缺口就尝试用第三个矩形去补。如果没有缺口就横着竖着枚举一下第三个矩形和合并的矩形x或y拼接。#includeusing namespace std;const int N = 300+5;int ax[3][2],ay[3][2]...
阅读全文
摘要:预处理+暴力,每个颜色都是独立的,求个前缀和,减一减判断一个在区间内颜色是否存在。算了算复杂度好像有点勉强,但是还是过了,学了主席树以后用主席树在做一下#includeusing namespace std;const int maxn = 1e4+4;const int maxm = 256;in...
阅读全文
摘要:3e7暴力,800ms+过,单调队列维护区间最小值。#includeusing namespace std;typedef long long ll;const int maxn = 3e7+5;int x[maxn], dq[maxn], pos[maxn];int main(){ freo...
阅读全文
摘要:算一下复杂度。发现可以直接暴。对于u枚举a和b,判断一下是否连边,更新答案。#includeusing namespace std;int n,m;const int maxn = 4001;#define PB push_backvector G[maxn];bool g[maxn][maxn];...
阅读全文
摘要:http://codeforces.com/gym/100650阅读题,边界的cell的邻居要当成一个环形的来算,时间有8s,状态最多2^16种,所以直接暴力枚举就行了。另外一种做法是逆推。#includeusing namespace std;int m,n;const int maxn = 17...
阅读全文
摘要:每一单词相邻两个字母,不能同时为元音或者辅音。。。各种姿势都可以过:7个for,dp,黑白染色,dfs,并查集。。。。最主要的思路就是相邻字母连边,把元音和辅音看成两个集合,那么有连边的两个字母一定不能出现在同一个集合中,于是想到了二分图判断的二染色。比较坑的是,必须要出现5个元音字母见识到了str...
阅读全文
摘要:题意:给你一些钟的时间,只可以往后调, 问最少调的时间总和是多少题解:因为肯定是调到某个出现过时间的,只要枚举时间,在维护一个前缀和快速计算出时间总和就行了。#include#include#include#include#include#include#define first fi#define...
阅读全文