atcoder E - Jigsaw(思维)】的更多相关文章

题目链接:http://agc017.contest.atcoder.jp/tasks/agc017_e 题解:这题很巧妙运用了cnt[i]抽象的表示了上下互补的状态,最后上面突出的一定要处理完.下面突出的可以多.而且最后要处理一下下面多的情况不能自己左右互补具体看一下代码. #include <iostream> #include <cstring> #include <cmath> #include <cstdio> #include <vecto…
题目链接:https://abc081.contest.atcoder.jp/tasks/arc086_b 题目大意:有n个数,最多可以执行2*n次操作,每次可以选择将ai加到aj上,最终使得该序列满足a1<=a2<=a3....<=an.求操作过程,答案不唯一. 解题思路:我们分三种情况讨论: ①a1~an都大于等于0,那么只要从左往右使a2+=a1,a3+=a2,.....an+=an-1.总共n-1次操作就能保证a1<=a2<=a3....<=an. ②a1~an…
Problem Statement We have a grid with H rows and W columns. At first, all cells were painted white. Snuke painted N of these cells. The i-th ( 1≤i≤N ) cell he painted is the cell at the ai-th row and bi-th column. Compute the following: For each inte…
题意: 有n只兔子,i号兔子开始的时候在a[i]号位置.每一轮操作都将若干只兔子依次进行操作: 加入操作的是b[i]号兔子,就将b[i]号兔子移动到关于b[i]-1号兔子现在所在的位置对称的地方,或者是关于b[i]+1号兔子现在所在的位置对称的地方,两者是等概率的.现在给出每一轮操作的兔子编号及顺序,要你求k轮之后每只兔子的位置的期望.保证操作的兔子编号为2~n-1. 数据范围: 1<=n,每一轮的操作数量<=100000 1<=k<=10^18 思路: 看见k这么大,肯定第一反应…
题意: 有一个含有n个点的无向图,所有的点最初颜色均为0.有q次操作,每次操作将v[i]周围的距离小于等于d[i]的点全部都染成颜色c[i].最后输出每个点的最终的颜色. 数据范围: 1<=n,m,q<=10^5 0<=d[i]<=10 1<=c[i]<=10^5 思路: 看见1<=d[i]<=10,这个条件,第一反应当然是暴力啦.但是如果从一个点总是能够访问所有的节点,那么这就变成O(n^2)了.那么我们应当考虑时间复杂度更加稳定的算法. 然后开始考虑如何…
就是一个组合数水题 偷个图 去掉阴影部分  把整个图看成上下两个矩形 对于上面的矩形求出起点到每个绿点的方案 对于下面的矩形 求出每个绿点到终点的方案 上下两个绿点的方案相乘后相加 就是了 想想为什么 #include <iostream> #include <cstdio> #include <sstream> #include <cstring> #include <map> #include <cctype> #include…
题意 https://vjudge.net/problem/AtCoder-2565 将一个H*W的矩形切成三份,每一次只能水平或者垂直切,问最大块的面积-最小快的面积 的最小值是多少. 思路 先枚举水平切第一块的高i,那么剩余部分h-i要么继续水平切.要么垂直切,因为要使最大快-最小快 最小,那么剩下的两块肯定是相差最少为好,所以可以拆成w/2和w-w/2两块,也可以拆成(h-i)/2和(h-i)-(h-i)/2. 再枚举垂直切的第一块的宽度,后续操作类似. 代码 #include<bits/…
题意 https://vjudge.net/problem/AtCoder-2282 告诉你sx,sy,tx,ty,问从s走到t,再从t走到s,再从s走到t,再从t回到s的最短路,每次只能上下左右选一个走1,除了s和t,其他点只能走一次. 思路 这是个沙雕构造题,我画出来了却没看出来..太沙雕了. 借用别人的图: 然后乱走即可.. 代码 #include <bits/stdc++.h> using namespace std; #define ll long long const int N=…
题意 https://vjudge.net/problem/AtCoder-2140 每次告诉你新的a:b,计算最后最小的a+b. 思路 如 3 2 3 1 1 3 2 先令a=2,b=3,发现新的为1:1,那么用a/1,b/1,发现b/1=3更大,所以要尽可能满足b(票数不能减少),所以就变成a=3,b=3,接着发现3:2,用a/3=1,b/2=1.5,同样b大,但因为票数为整数,所以不能是4.5:3,而是用1.5向上取整计算,所以是6:4. 这题卡精度,要手写向上取整函数才能过. 代码 #i…
AtCoder Grand Contest 019 B - Reverse and Compare 题意:给定字符串,可以选定任意i.j且i<=j(当然i==j时没啥卵用),然后翻转i到j的字符串,问能组成多少种不同的字符串. tourist出的题..感觉好棒,虽然简单,但我就是不知道怎么弄,感觉思维好匮乏. 首先,如果Si=Sj,那么反转i到j和翻转i+1到j-1是一样的,也就是这种翻转不会贡献更多的答案.那么其实只要求i<j且Si!=Sj的个数就行了,当然,本身不变也是一种答案.求解i&l…