题目传送门 这道题 枚举一波y就好了 要求x,y整数 所以y最多1000个 然后算一波答案更新就好了 233 #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; LL read(){ LL ans=,f=,c=getchar(); ; c=getchar();} +(c-'); c=getchar();} return ans*f…
B. Okabe and Banana Trees time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Okabe needs bananas for one of his experiments for some strange reason. So he decides to go to the forest and cut…
[题目链接]:http://codeforces.com/contest/821/problem/B [题意] 当(x,y)这个坐标中,x和y都为整数的时候; 这个坐标上会有x+y根香蕉; 然后给你一条直线的方程y=1mx+b 给你m和b; 让你在这条直线以下选一个长方形; (长方形的边都要和坐标轴平行,见样例图); 然后你可以把整个长方形内的所有点上的香蕉都拿走; 问你最多能拿走多少个香蕉; [题解] 枚举长方形的右竖边的x轴坐标; 可以得到上边的y坐标(当然取最大了); 左竖边当然是x=0了…
题目链接 :http://codeforces.com/contest/821/problem/B 题意 :给出 m 和 b 表示在坐标轴上的一条直线  要求你在这条直线和x.y轴围成的区域中找出一个矩形,使得矩形贡献的价值最大,矩形的贡献由在矩形里面的每一个整数点(x, y)的和构成即 x+y. 分析 :实际就是在一个限定的范围内找价值最大矩阵,那么可以试着枚举在这个区域内的可能有最大贡献的矩阵,根据y从b~0自上而下地枚举,对于每一个yi,我们根据直线方程算出xi(向下取整),那这个xi和y…
Link 题意:给出一条直线,在直线上取一点,其垂直x,y轴作成一个,求矩阵中所有包含的点的x,y坐标之和的最大值. 思路:对于一个任意一点我们计算公式,对于任意一点$(x, y)$,有$(x+y)^2 + (x+y)(xy+1)$,枚举一个未知量,得另一个未知量向下取整即可. /** @Date : 2017-07-04 14:52:58 * @FileName: B 数学.cpp * @Platform: Windows * @Author : Lweleth (SoungEarlf@gma…
题目链接   Ciel and Flipboard 题意  给出一个$n*n$的正方形,每个格子里有一个数,每次可以将一个大小为$x*x$的子正方形翻转 翻转的意义为该区域里的数都变成原来的相反数. 求经过若干次操作之后整个正方形的所有数之和. 这题关键就是要知道这个结论. 假设$st[i][j]$为$a[i][j]$的翻转情况($st[i][j] = 0$ 不翻转  $st[i][j] = 1$ 翻转) 那么一定有 $st[i][j]$ xor $st[i][x]$ xor $st[i][j…
思路: 暴力枚举. 实现: #include <iostream> #include <cstdio> using namespace std; typedef long long ll; ll m, b; int main() { cin >> m >> b; ll maxn = ; ; i <= m * b; i++) { ll j = - i / m + b; ) { ll ans = (i + ) * (j + ) * (i + j) / ;…
链接:https://codeforces.com/contest/1269/problem/D 题意:给一个不规则的网格,在上面放置多米诺骨牌,多米诺骨牌长度要么是1x2,要么是2x1大小,问最多放置多米诺骨牌的数量. 思路:首先这是一个结论题,对每个方格进行染色,一个方格染黑色,周围邻近的就染白色,答案就是黑色方格数量和白色方格数量的最小值.这个结论可以用二分图进行证明:把问题抽象成最大二分图匹配,每两个点之间连一条边.一个格子和周围格子连一条边,如果一个格子周围的还没被匹配,那么匹配数+1…
5578 咸鱼  时间限制: 1 s  空间限制: 128000 KB   题目描述 Description 在广袤的正方形土地上有n条水平的河流和m条垂直的河流,发达的咸鱼家族在m*n个河流交叉点都建立了城市.然而,由于河流有单一的流向,而咸鱼们却没有发达的下体,所以只能顺流而下.两两河流之间的流向互不影响. 现在,咸鱼冒险家Sorey决定出发去看看这个世界,但是Sorey担心自己可能被困在某个城市而无法回归自己的家乡.于是Sorey夜观天象,搞清楚了每条河的流向,他想请你帮他判断他的旅途是否…
BZOJ_1367_[Baltic2004]sequence_结论题+可并堆 Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 18 Sample Output 13 HINT 所求的Z序列为6,7,8,13,14,15,18. R=13 神题.有一个结论:最优解一定是把序列分成m块,每块取中位数,并使得取出的序列递增. 不会证?https://wenku.baidu.com/view/20e9ff18964bcf84b9d…
Description 小 Z 是一个不折不扣的 ZRP(Zealot Round-game Player,回合制游戏狂热玩家), 最近他 想起了小时候在江南玩过的一个游戏.     在过去,人们是要边玩游戏边填词的,比如这首<菩萨蛮>就是当年韦庄在玩游戏时填 的:     人 人 尽 说 江 南 好, 游 人 只 合 江 南 老.     然而我们今天不太关心人们填的词是什么,我们只关心小 Z 那时玩过的游戏.游戏 的规 则是这样的,给定 N 堆石子,每堆石子一开始只有 1 个.小 Z 和他…
题目描述 给出一个长度为 $\frac{n(n+1)}2$ 的直尺,要在 $0$ 和 $\frac{n(n+1)}2$ 之间选择 $n-1$ 个刻度,使得 $1\sim \frac{n(n+1)}2$ 中任意一个长度都可以由某两个刻度(包括 $0$ 和 $\frac{n(n+1)}2$ )之间的距离表示出来.问是否有解. $n\le 2500$ 题解 结论题 结论:当且仅当 $n\le 3$ 时有解. 神TM结论... 证明: 由于只有 $C_{n+1}^2=\frac{n(n+1)}2$ 种选…
题目描述 给出一张 $n$ 个点 $m$ 条边的无向连通图,每条边的边权为1.对于每个点 $i$ ,问是否存在另一个点 $j$ ,使得对于任意一个不为 $i$ 或 $j$ 的点 $k$ ,$i$ 到 $k$ 的最短路与 $j$ 到 $k$ 的最短路之差为定值.求所有满足条件的点 $i$ . $n\le 100000,m\le 200000$ 题解 结论题+Hash 结论:$i$ 满足条件,当且仅当满足三个条件之一: 1. 点 $i$ 的度数为1:2. 点 $i$ 与一个度数为1的点相连:3. 存…
题目描述 给出两个长度为 $n$ 的排列 $A$ 和 $B$ ,如果 $A_i>A_{i+1}$ 则可以交换 $A_i$ 和 $A_{i+1}$ .问是否能将 $A$ 交换成 $B$ . 输入 输入数据第一行包含一个正整数 $n$ . 接下来两行每行 $n$ 个正整数,分别描述排列 $A$ 和排列 $B$ . 输出 对于每组数据,如果存在这样的指令序列,输出“YES”,否则输出“NO”(引号不输出,请注意大小写). 样例输入 54 1 2 5 31 2 4 3 5 样例输出 YES 题解 结论题…
题目描述 给出一棵n个点的树,求有多少个si使得整棵树可以分为n/si个连通块. 输入 第一行一个正整数N,表示这棵树的结点总数,接下来N-1行,每行两个数字X,Y表示编号为X的结点与编号为Y的结点相连.结点编号的范围为1-N且编号两两不同. 输出 一行一个整数Ans,表示所求的方案数. 样例输入 6 1 2 2 3 2 4 4 5 5 6 样例输出 3 题解 结论题 结论:k可行当且仅当子树大小是k的倍数的节点数有n/k个. 这结论好像挺显然的(只要你能想出来...) 然后就做完了...先预处…
题目描述 给出一个网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完.此对此问题变形,假设每个格子中有好多财宝,而每一次经过一个格子至多只能捡走一块财宝,至少走多少次才能把财宝全部捡完. 输入 第一行为正整数T,代表数据组数. 每组数据第一行为正整数N,M代表网格图有N行M列,接下来N行每行M个非负整数,表示此格子中财宝数量,0代表没有 输出 输出一个整数,表示至少要走多少次. 样例输入 1 3 3 0 1 5 5 0 0 1 0 0 样例输出 10 题解…
题目描述 Zy皇帝面临一个严峻的问题,两个互相抵触的贸易团体,YYD工会和FSR工会,他们在同一时间请求在王国各个城市开办自己的办事处.这里有n个城市,其中有一些以双向马路相连,这两个工会要求每个城市应该做到: 1:有这个工会的办事处或 2:和另外一个符合1条件的城市有马路直接相连.(也就是每个城市必须是YYD的公会,但是又和FSR的公会的城市相连,或者是FSR的,和YYD的城市相连,或者和两个工会的城市相连)但是Zy怀疑不正当的竞争,他担心一个城市有两个工会的办事处,(就是说一个城市不能有两个…
题意 题目链接 $Q$组询问,每次给出$[x, y]$,定义$f(x, y)$为计算$(x, y)$的最大公约数需要的步数,设$i \leqslant x, j \leqslant y$,求$max(f(i, j))$,以及$max(f(i, j))$不同的数对$(i, j)$的个数 Sol 结论题Orz 设$f(x, y)$表示$(x, y)$辗转相除需要的步数,$fib(i)$表示第$i$个斐波那契数 常识:$f(fib[i], fib[i+1]) = i$. 定义一个数对是“好的”,当且仅…
Gem bzoj-1369 Baltic-2003 题目大意:给你一棵树,让你往节点上添自然数,使得任意相邻节点的数不同且使得权值最小. 注释:n为结点个数,$1\le n\le 10^3$. 想法:呵呵,学长一直在骂结论题,我一直觉得没啥.. ... 知道tm碰见这玩意儿,卧槽?! 树上相邻节点不同色,颜色个数最小值至多为logn. 最后,附上丑陋的代码... ... #include <iostream> #include <cstring> #include <cstd…
题目 中文题目,不解释: BZOJ传送门 分析 这道题BZOJ上也只有几个人过-奇怪了 下面是正解 原问题为一个二分图边染色问题.首先考虑最好情况.最理想情况的分配为:设一个点xxx的度为dgr(x)dgr(x)dgr(x).那么若dgr(x)dgr(x)dgr(x)为ttt的倍数,那么与xxx相连的边恰好平均分配给ttt个公司,每个公司dgr(x)/tdgr(x)/tdgr(x)/t个:如果不是ttt的倍数,那么要尽量分的均匀,即max(ax(c))−min(ax(c))=1max(a_x(c…
一道结论题:如果最小生成树和最大生成树之间存在fib数,成立.不存在或者不连通则不成立.由于是01图,所以这个区间内的任何生成树都存在. 证明:数学归纳?如果一棵树没有办法再用非树边0边替代1边了,那他就是最小生成树.如果一棵生成树大于最小生成树,那么他显然存在可以被替换的1边,否则会与最小矛盾.最大生成树存在(与最小生成树相等时显然结论成立),那么他一定可以有可以替换的边,所以所有区间内的生成树都存在. 吐槽:我一开始以为要依据fib的性质合并块..研究好久..冏. #include<iost…
题目链接:https://ac.nowcoder.com/acm/contest/907/A 思路:结论题,当做2n条直线,参考资料https://blog.csdn.net/qq_34131212/article/details/78043679 AC代码: #include<iostream> #include<cstdio> #include<string> using namespace std; int main() { long long n; while(…
题目链接:http://codeforces.com/problemset/problem/351/B 题意: 给你一个1到n的排列a[i]. Jeff和Furik轮流操作,Jeff先手. Jeff每次会交换a[i]>a[i+1]的两个数. Furik每次有1/2的概率交换a[i]<a[i+1]的两个数,有1/2的概率交换a[i]>a[i+1]的两个数. 当这个排列变成升序时,游戏停止. 问你操作数的期望. 题解: 假设原序列中有t个逆序对. 那么将这个序列变成升序,就是将这t个逆序对一…
A /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define pb push_back using namespace std; typedef long long ll; typedef unsigned long long ull; ][] = {{, }, {, }, {, -}, { -, }, {, }, {, -}, { -, -}, { -, }}; ; + + + + 1e9…
A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #define TS printf("!!!\n") #define pb push_back #define inf 0x3f3f3f3f //std::ios::sync_with_stdio(false); using namespace std; //priority_queue<i…
题目:http://codeforces.com/contest/505/problem/D 题目大意:就是给你一个n个点的图,然后你要在图中加入尽量少的有向边,满足所有要求(x,y),即从x可以走到y 分析: 对于输入的图中,可以发现每个连通块是独立的,中间不用连边就可以,于是考虑单个连通块. 如果某个连通块一共有m个点,那么我们知道,我们至少是要加m-1条边才可以保证形成的图是连通的,但是因为是有向边,所以最后形成的图一定是DAG图,这也就意味着这必须要求对于这个连通块,原图也是DAG图,即…
821C - Okabe and Boxes 思路:模拟.因为只需要比较栈顶和当前要删除的值就可以了,所以如果栈顶和当前要删除的值不同时,栈就可以清空了(因为下一次的栈顶不可能出现在前面那些值中). 代码: #include<bits/stdc++.h> using namespace std; #define ll long long vector<int>st; int main() { ios::sync_with_stdio(false); cin.tie(); ,ans=…
E. Okabe and El Psy Kongroo time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Okabe likes to take walks but knows that spies from the Organization could be anywhere; that's why he wants to k…
Okabe and City 题解: 将行和列也视为一个点. 然后从普通的点走到行/列的点的话,就代表这行/列已经被点亮了. 然后将费用为0的点建上边. 注意讨论(n,m)非亮的情况下. 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w"…
题目链接:http://codeforces.com/contest/821/problem/E 题意:我们现在位于(0,0)处,目标是走到(K,0)处.每一次我们都可以从(x,y)走到(x+1,y-1)或者(x+1,y)或者(x+1,y+1)三个位子之一. 现在一共有N段线段,每条线段都是平行于X轴的.我们如果此时x是在这段线段之内的话,我们此时走到的点(x,y)需要满足0<=y<=Ci. 现在保证一段线段的终点,一定是下一段线段的起点.问我们从起点走到终点的行走方案数. 题解:简单的dp+…