杂题
Vectorxj
这个作者很懒,什么都没留下…
展开
-
HDU 5762 [简单复杂度分析]
DescriptionDescription给定nn个点,求是否存在两对点曼哈顿距离相等。 0≤xi,yi≤1050\le x_i,y_i\le 10^5SolutionSolution曼哈顿距离的个数应该也是O(n)O(n)的啦。。。#include <bits/stdc++.h>using namespace std;const int N = 201010;inline char get(原创 2017-09-25 18:39:56 · 356 阅读 · 0 评论 -
Code Festival 2017 qualA E-Modern Painting
DescriptionDescription给定一个n∗mn*m的网格。一些人站在网格的边界上。 一个人可以占据他面前的一行(列),过程是一直往前染色(每个人的颜色都不一样),直到下一个格子染上了颜色或者到达了边界。 显然不同顺序会有不同的最终状态。 求最终状态的方案数。 n,m≤105n,m\le 10^5SolutionSolution好难啊,一点都不会做QAQ。 可以先假设是竖直方向原创 2017-09-26 20:44:39 · 393 阅读 · 0 评论 -
[杂题]Codeforces 663C. Graph Coloring
DescriptionDescription就是图上的开关灯游戏。 每条边有一个颜色,每次选择一个点可以翻转一种颜色。 求使所有颜色相同的最小操作数。SolutionSolution枚举最后染成的颜色。 如果一条边颜色与最后染成的颜色相同,那么它连接的两个点必须同时选或者同时不选。 那么只要dfs一次就好了。 有一个小坑(不过也是我太菜了啊QAQ)就是联通块要分开来算。。#include原创 2017-10-17 21:37:26 · 524 阅读 · 0 评论 -
[找规律] SRM599 Hard FindPolygons
DescriptionDescription找到一个边数最小的格点多边形使得周长等于LL,若有多解,要找到最长边和最短边相差最短的。SolutionSolution所有边为整数。L=2L=2无解。LL为奇数无解: 对于其中的一条边连接了两个点(x1,y1)(x_1,y_1)和(x2,y2)(x_2,y_2)。c2=(x1−x2)2+(y1−y2)2c^2=(x_1-x_2)^2+(y_1-原创 2017-12-13 12:56:22 · 376 阅读 · 0 评论 -
[构造][度数序列的可图性]Codeforces Gym 100269K. Kids in a Friendly Class
DescriptionDescription一张图有黑点和白点。每个黑点有aa条边和黑点相连,bb条边和白点相连。每个白点有cc条边和黑点相连,dd条边和白点相连。求一个方案使总点数最少。a,b,c,d≤50a,b,c,d\le50SolutionSolution杜老师好强啊~ 黑白点的个数是可以枚举的。 设他们为nn和mm。那么有m=nbcm = {{nb}\over c}。 那原创 2017-10-24 20:48:49 · 612 阅读 · 0 评论 -
[杂题]ARC076 E - Connected?
SolutionSolution脑补一下有端点不在边界上的点显然是没有影响的。 那就是要处理剩下的点。 将剩下的点按极角排序以后,如果两端点覆盖的区间有交且不存在包含关系时,必然不合法。 这个东西维护一个栈就好了。#include <bits/stdc++.h>using namespace std;const int N = 101010;inline char get(void) {原创 2018-01-03 13:18:01 · 306 阅读 · 0 评论 -
[杂题]AGC015C - Nuske vs Phantom Thnook
DescriptionDescription给定一张网格图。图中的两个黑点右边当且仅当相邻。 求子网格图(x1,y1,x2,y2)(x_1,y_1,x_2,y_2)中联通块的个数。 保证两个点之间不连通或只存在一条简单路径。SolutionSolution森林的联通块个数=点数-边数。#include <bits/stdc++.h>using namespace std;const int N原创 2017-10-23 12:21:34 · 312 阅读 · 0 评论 -
[杂题]Codeforces 860D. Wizard's Tour
SolutionSolution首先答案的上界是⌊m2⌋\lfloor{m\over 2}\rfloor。 考虑dfsdfs树。 一个点如果连向dfsdfs序靠前的点的边有偶数条,那么把这些点一对一的加到答案里面。 如果只有奇数条,那么就要考虑把连向父节点的边也加进来。 在dfsdfs中记录这些东西就好了。 这样就得到的答案为⌊m2⌋\lfloor{m\over 2}\rfloor。#in原创 2017-10-18 14:54:16 · 363 阅读 · 0 评论 -
[组合数] SRM 555 Div1 Medium XorBoard
SolutionSolution枚举行列进行奇数次操作的个数,组合数算一下就好了。// BEGIN CUT HERE// END CUT HERE#line 5 "XorBoard.cpp"#include using namespace std;const int N = 3333;const int MOD = 555555555;typedef long lon原创 2018-01-06 13:16:01 · 309 阅读 · 0 评论