[Codeforces 489E] Nastya and King-Shamans】的更多相关文章

[题目链接] http://codeforces.com/contest/992/problem/E [算法] 线段树 + 二分 时间复杂度 : O(NlogN^2) [代码] #include<bits/stdc++.h> using namespace std; ; typedef long long ll; struct Node { int l,r; ll mx,sum; } Tree[MAXN << ]; int i,n,q,x,y,cur,tmp,ans; ll val…
[Educational Codeforces Round 16]A. King Moves 试题描述 The only king stands on the standard chess board. You are given his position in format "cd", where c is the column from 'a' to 'h' and dis the row from '1' to '8'. Find the number of moves perm…
题目链接: http://codeforces.com/contest/1136/problem/E 题意: 初始有a数组和k数组 有两种操作,一,求l到r的区间和,二,$a_i\pm x$ 并且会有一个连锁反应 $$while\left ( a_{i+1}<a_i+k_i \right )a_{i+1}=a_i+k_i,i++ $$ 数据范围: $2 \leq n \leq 10^{5}$$-10^{9} \leq a_i \leq 10^{9}$$-10^{6} \leq k_i \leq…
题目链接:https://codeforces.com/problemset/problem/1136/E 题意: 给出一个 $a[1 \sim n]$,以及一个 $k[1 \sim (n-1)]$,初始保证所有的 $1 \le i \le n-1$ 都满足 $a[i]+k[i] \le a[i+1]$. 现在有两种操作: 第一种是令指定的 $a[i]$ 加上一个非负整数 $x$,此时若有 $a[i] + k[i] > a[i+1]$,则 $a[i+1]$ 变为 $a[i] + k[i]$,往后…
题目链接:https://codeforces.com/problemset/problem/1136/D 题意: 给出 $1 \sim n$ 的某个排列 $p$,再给出若干 $(x,y)$ 表示当序列中出现 $x,y$ 时,两者可以交换位置.问序列中最末尾的数可以前进多少步. 题解: 如果 $p[n-1]$ 可以与 $p[n]$ 交换位置,那么肯定是立刻交换,因为首先 $p[n-1]$ 只能最多只能产生 $1$ 步的贡献,同时就算把 $p[n-1]$ 往前换,等到在未来某个时刻再跟 $p[n]…
题目链接:https://codeforces.com/problemset/problem/1136/C 题意: 给出 $n \times m$ 的矩阵 $A,B$,你可以对其中任意某个 $k \times k$ 的子矩阵进行转置操作. 问你是否能将 $A$ 变成 $B$. 题解: 不管我们如何进行转置,不难发现整个矩阵的任意一条反对角线上的元素构成的集合,都是不会变的. 而我们可以进一步得出结论,对于 $A,B$ 两个矩阵,只要满足任意一条反对角线上的它们的元素构成的集合相同,就能从 $A$…
题目链接 题意 : 给出 N 个点(最多 1e6 )和 M 条边 (最多 N + 20 条 )要你输出一条从 1 开始回到 1 的哈密顿回路路径,不存在则输出 " There is no route, Karl! " 分析 :  题意很简单明了 众所周知,哈密顿回路是个 NP-Hard 问题 这么多个点的哈密顿回路肯定是不能暴力去寻找的 但是关注到 M ≤ N + 20 这个特殊的条件 那就说明图中肯定有很多单向链 那么这题就很明确了,就把所有的单链缩成一个点 然后再去 DFS 暴力找…
http://codeforces.com/problemset/problem/992/C 题意: 给你两个数x,k,k代表有k+1个月,x每个月可以增长一倍,增长后的下一个月开始时x有50%几率减1,增长k+1个月后结果是每种情况的总和除以种数. 题目要求的是增长k+1个月后的结果. 我们根据第三个样例可以推出他的增长过程 3 6 5 12 11 10 9 |     |     | | 24    22 20 18 从这个推导我们容易得出最后得到的每种情况构成一个等差数列,公差为2 结果是…
http://codeforces.com/problemset/problem/992/B  题意: 给你区间[l,r]和x,y 问你区间中有多少个数对 (a,b) 使得 gcd(a,b)=x lcm(a,b)=y ,如果a,b交换位置就是不同的数对 思路: 根据lcm(最小公倍数) 的定义 y=a*b/x; 也就是说 x∗y=a∗b : 那么 ,我们发现a,b一定为y的因数,所以我们枚举y的每个因子就可以,我们只要用log(y)的复杂度暴力算每一个因数就可以 , 然后对于每个因子当做a, b…
Nastya received a gift on New Year - a magic wardrobe. It is magic because in the end of each month the number of dresses in it doubles (i.e. the number of dresses becomes twice as large as it is in the beginning of the month). Unfortunately, right a…