随笔分类 -  暴力

摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 首先。 这张图是无向无权图。 因此任意两点之间的最短路可以通过N^2的bfs轻易算出来。 即得到d[N+10][N+10] 考虑s[0] t[0]的最短路以及s[1] t[1]的最短路 如果d[s0][t0] l0或d[s1][ 阅读全文
posted @ 2018-07-14 15:55 AWCXV 阅读(106) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 转化一下思路。 我们求出任意两个点之间到达 最少经过的障碍物的个数。 最后求出障碍物个数小于等于T的 枚举答案就好。 (任意两点间最少障碍物可以用一个类似spfa的方法求得 (很巧妙的转换 【代码】 cpp include de 阅读全文
posted @ 2018-05-06 20:31 AWCXV 阅读(131) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 暴力枚举船的左上角。 然后统计每个点被覆盖次数就好。 【代码】 cpp include define LL long long define rep1(i,a,b) for (int i = a;i = b;i ) define 阅读全文
posted @ 2018-04-26 04:15 AWCXV 阅读(254) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如果写过n皇后问题。 肯定都知道 某个点(i,j)和它在同一条对角线上的点分别是i+j的值和i j的值相同的点。 然后会发现选择的两个点其实就对应了两组i+j和i j 且每组i+j和i j i+j的奇偶性和i j的奇偶性要是一样 阅读全文
posted @ 2018-04-14 21:22 AWCXV 阅读(125) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 一开始以为可以炸多次。 然后发现是一次。 那么久直接做个前缀和就好了 枚举正方形的左上角。 然后刚好和网格对齐的话。 肯定没有放在(x+0.1,y+0.1)这个地方好。 这样可以把边缘的炸掉。 然后为了方便处理。 x和y都递增1 阅读全文
posted @ 2018-03-20 08:52 AWCXV 阅读(182) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 用小的质数去凑那个数字。 显然比用大质数去凑划算。 因为 对于$x = p1^{q1} p2^{q2} ... pn^{qn}$ x的因子个数等于(q1+1) (q2+1).... (qn+1); 显然 你用的质数越小。 这个指 阅读全文
posted @ 2018-03-10 21:53 AWCXV 阅读(146) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 二维的ST表。 每个大的正方形可以由4个小的正方形组成。 然后区域内的最大值最小值。也可以由4个小的张方形部分全部覆盖到。 【代码】 cpp include define LL long long define rep1(i,a 阅读全文
posted @ 2018-03-07 11:38 AWCXV 阅读(102) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 会发现,如果把连续4个数字进行一次翻转的话。 假设这连续的4个数字的逆序数为x; 那么翻转过后,逆序数就会变成6 x; (最多6个逆序数,现在翻转了 那么这4个逆序数的变化为6 2x 显然变化值为一个偶数。 而1..l 1和r+ 阅读全文
posted @ 2018-02-24 15:25 AWCXV 阅读(181) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 添加两个y坐标0和h 然后从这n+2个y坐标中任选两个坐标,作为矩形的上下界。 然后看看哪些点在这个上下界中。 定义为坐标集合S S中的点的相邻x坐标差和上下界的差的较小值是这个矩形能够构成的最大正方形。 枚举所有情况就好。 【 阅读全文
posted @ 2018-02-23 16:40 AWCXV 阅读(195) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举N[q]和N[r]的位置 因为N[q]是最大值,且N[r]是最小值。 且它们是中间的两个。 枚举这两个可以做到不重复枚举。 然后假设我们枚举了q和r的位置分别为i和j (a[i] a[j] 那么我们接下来需要得到两个东西。 阅读全文
posted @ 2018-02-20 19:50 AWCXV 阅读(238) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 p[i] = p[p[i]]一直进行下去 在1..n的排列下肯定会回到原位置的。 即最后会形成若干个环。 g[i]显然等于那个环的大小。 即让你形成若干个环。 每个环的大小只能为A或B 则相当于问A x+B y=n是否有解。 可 阅读全文
posted @ 2018-02-18 20:30 AWCXV 阅读(144) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 最后的直角三角形可以通过平移,将直角顶点移动到坐标原点。 然后我们只要枚举另外两个点其中一个点的坐标就好了。 x坐标的范围是[1..a) 因为再长的话,这条边肯定就超过边长a了。 然后用一些相似三角形的规律就能知道另外一个点的坐 阅读全文
posted @ 2018-02-14 11:19 AWCXV 阅读(107) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 bfs. 用一个链表来记录哪些点已经确定在某一个联通快里了。 一开始每个点都能用。 然后从第一个点开始进行bfs. 然后对于它的所有连接着的点(输入的图的补图 看看它是不是之前进行过bfs,如果是的话。就跳过。(可以用链表直接跳 阅读全文
posted @ 2018-02-03 10:32 AWCXV 阅读(110) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 处理处所有的字符串可能的样子。 存在map里面就好。 【代码】 cpp include using namespace std; const string S[8] = {"vaporeon", "Jolteon", "Flar 阅读全文
posted @ 2018-02-02 11:22 AWCXV 阅读(140) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 紫书上的原题; "链接" 【代码】 cpp include define ll long long using namespace std; const int N = 1e5; ll m,c1,c2,v1,v2; int ma 阅读全文
posted @ 2018-02-01 11:50 AWCXV 阅读(135) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 用pre[i][j]表示第i行前j列的和。 然后枚举连续座位的最左上点。 (有两种可能向右或向下k个。 则还需要处理出pre2[i][j]表示第j列前i行的和。 (都可以O(N^2)求出 然后pre[i][j+k 1] pre[ 阅读全文
posted @ 2018-02-01 01:49 AWCXV 阅读(175) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 直接暴力求出第k个perfect数字就好。 纯模拟。 【代码】 cpp include define double long double using namespace std; int n; int _judge(int x 阅读全文
posted @ 2018-02-01 01:45 AWCXV 阅读(231) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 这个数列增长很快的。 直接暴力模拟看看是不是它的一项就好了 【代码】 cpp include using namespace std; int n; bool ff(int x){ if (x==1) return true; 阅读全文
posted @ 2018-01-30 11:10 AWCXV 阅读(113) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每个数字有3种选择。 1.选中它。 2.选中它且加阶乘符号 3.不选中它(即计算和的时候不考虑它) 如果我们直接暴力写的话复杂度是$3^{25}$ 寻求优化。 我们可以用Meet in the middle这个方法。 先求出1. 阅读全文
posted @ 2018-01-29 15:59 AWCXV 阅读(117) 评论(0) 推荐(0)
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 O(n^2)枚举每一个区间。 然后维护这个区间里面的“统治数字"是什么。 对于每个区间cnt[统治数字]++; 【代码】 cpp include using namespace std; const int N = 5000+1 阅读全文
posted @ 2018-01-26 12:12 AWCXV 阅读(85) 评论(0) 推荐(0)