codeforces#536题解】的更多相关文章

CodeForces#536 A. Lunar New Year and Cross Counting Description: Lunar New Year is approaching, and you bought a matrix with lots of "crosses". This matrix \(M\) of size \(n \times n\) contains only 'X' and '.' (without quotes). The element in t…
foreword ummm... 开始前几个小时被朋友拉来打了这一场,总体海星,题目体验极佳,很符合口味,稍微有点点简单了不知道是不是因为是 New Year Round,很快就打到了 D,但是题目阅读难度有点点大,Alice 和 Bob 永远离不开的博弈论,呼应去年的博弈论. 少有的评测机出锅(也有可能是我打的少),一片 In queue 了大概 40 分钟,加时了以为会继续 Rated,结果又加时又 Unrated 可还行.太久不打有点不熟悉规则,手有点滑,A 题打成了 ... map[i+…
12.18 update:补充了 $ F $ 题的题解 A 题: 题目保证一定有解,就可以考虑用 $ 2 $ 和 $ 3 $ 来凑出这个数 $ n $ 如果 $ n $ 是偶数,我们用 $ n / 2 $ 个 $ 2 $ 来凑出 $ n $ 即可 如果 $ n $ 是奇数,就用 $ n / 2 - 1 $ 个 $ 2 $ 和 $ 1 $ 个 $ 3 $ 凑出 $ n $ 即可 所以只需输出 $ n / 2 $ B 题: 如果一个字符串重排后一定是回文串,说明这个字符串只有 $ 1 $ 种字符 如…
这题只需要会10转P进制就行了. PS:答案需要约分,可以直接用c++自带函数__gcd(x,y). 洛谷网址 Codeforces网址 Code(C++): #include<bits/stdc++.h> using namespace std; int jz(int x,int p) { ,a; ) {//10转P进制 a=x%p; s+=a;//直接将算出的哪一位加上 x/=p; } return s; } int main() { ; cin>>A; ; ;i<A;i…
题面 传送门:http://codeforces.com/problemset/problem/691/E E. Xor-sequences time limit per test3 seconds memory limit per test256 megabytes inputstandard input outputstandard output You are given n integers a1,  a2,  …,  an. A sequence of integers x1,  x2…
题面 传送门:http://codeforces.com/problemset/problem/833/B B. The Bakery time limit per test2.5 seconds memory limit per test256 megabytes inputstandard input outputstandard output Some time ago Slastyona the Sweetmaid decided to open her own bakery! She…
题面 传送门:http://codeforces.com/problemset/problem/840/C C. On the Bench time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output A year ago on the bench in public park Leha found an array of n numbers. L…
题面 传送门:http://codeforces.com/problemset/problem/515/C Drazil is playing a math game with Varda. Let’s define f(x)f(x)for positive integer x as a product of factorials of its digits. For example, f(135)=1!∗3!∗5!f(135)=1!∗3!∗5! First, they choose a dec…
题面: 传送门:http://codeforces.com/problemset/problem/475/D Given a sequence of integers a1, -, an and q queries x1, -, xq on it. For each query xi you have to count the number of pairs (l, r) such that 1 ≤ l ≤ r ≤ n and gcd(al, al + 1, -, ar) = xi. 题目大意:…
题解 非常有意思的\(2-SAT\)的题. 听学长讲完之后感觉确实容易想到\(2-SAT\),顺理成章. 显然,对于两个串,对咱们来说有意义的显然是两个串中第一个不同的数字.那么,我们假设两个串分别是\(A,B\),第一个不同的位置是\(pos\),且\(A_{pos}=x,B_{pos}=y\),如果\(x>y\),那么显然我们需要给\(x\)加一个\('\),且\(y\)一定不能加,要不然没有意义.所以我们把\(x+m\)向\(y\)连边,反之就反着来就好了. 然后就可以跑一遍\(2-SAT…
解法\(1:\) 正常的\(bfs\)剪枝是\(\Theta(nm4k)\),这个时间复杂度是只加一个\(vis\)记录的剪枝的,只能保证每个点只进队一次,并不能做到其他的减少时间,所以理论上是过不了的.\(n*m*4*k=4*10^9\). 这里提供一个\(codeforces\)的官方解法:\(STL-set\)优化\(bfs\).使用\(set\)主要是能够快速找到当前行和列有那个点没有被找到过,每行每列单独建立一个\(set\),\(set<int>\ line[N],col[N]\)…
A: 发现最优的方案一定是选 $ l $ 和 $ 2 * l $,题目保证有解,直接输出即可 #include <bits/stdc++.h> #define Fast_cin ios::sync_with_stdio(false), cin.tie(); #define rep(i, a, b) for(register int i = a; i <= b; i++) #define per(i, a, b) for(register int i = a; i >= b; i--…
题意:过年了,Bob要抢红包.抢红包的时间段为1 - n,有m个红包,每个红包有三个属性:st(红包出现的时间), ed(红包消失的时间),d(如果抢了这个红包,能够抢下一个红包的时间),w(红包的收益).注:结束时间为ed是指在ed + 1的时候才能抢其它的红包,d同理.Bob是一个贪心的人,如果当前时间段他可以抢红包,他会抢现在出现的红包中收益最大的红包.如果有多个收益最大的红包,他会抢d最大的那个.Alice可以打断Bob k次,每次打断可以使Bob在1秒内无法行动,下一秒恢复正常.现在问…
题意是,给出n个k维空间下的点,然后q次操作,每次操作要么修改其中一个点的坐标,要么查询下标为[l,r]区间中所有点中两点的最大曼哈顿距离. 思路:参考blog:https://blog.csdn.net/Anxdada/article/details/81980574,里面讲了k维空间中的最大曼哈顿距离求法,然后利用这个方案改一改,用线段树来维护这些值就好了. #include<bits/stdc++.h> using namespace std; #define ll long long…
给出一棵有根树,1为根结点,接下来q次询问,每次给出一个[l,r]区间,现在允许删掉[l,r]区间内任何一个点,使得所有点的最近公共祖先的深度尽可能大,问删掉的点是哪个点,深度最大是多少. 做法: 线段树维护区间dfs序的最大值,最小值. 首先,区间的LCA等价于区间dfs序的最小值和最大值对应的两个点的LCA. 然后,根据dfs序的性质,当删掉的点的dfs序最大或者最小时,对答案贡献最大. 所以接下来只要去查询区间里的LCA(最小值,次大值),以及LCA(次小值,最大值),两个LCA中深度最大…
Little Vasya has received a young builder's kit. The kit consists of several wooden bars, the lengths of all of them are known. The bars can be put one on the top of the other if their lengths are the same. Vasya wants to construct the minimal number…
若想要深入学习反悔贪心,传送门. Description: 已知接下来 \(n\) 天的股票价格,每天可以买入当天的股票,卖出已有的股票,或者什么都不做,求 \(n\) 天之后最大的利润. Method: 我们可以快速想出一种贪心策略:买入价格最小的股票,在可以赚钱的当天卖出. 显然我们可以发现,上面的贪心策略是错误的,因为我们买入的股票可以等到可以赚最多的当天在卖出. 我们考虑设计一种反悔策略,使所有的贪心情况都可以得到全局最优解.(即设计反悔自动机的反悔策略) 定义 \(C_{buy}\)…
A题,因为数据范围很小,所以只要暴力即可,如果能相遇一定范围不大,如果范围很大还没相遇一定是不会相遇的了.正解应当是用扩展欧几里得计算这个方程的整数解,再想办法看看有没有正整数解才是. B题,只要看懂了题意,用map维护一下即可.真不知道题目给的n是干嘛用的.. C题,如果不存在loop的情况就用np态判断一下即可.现在存在loop正向dfs是不可以的,因为dfs的顺序会对结果造成影响.那么采用倒着搜索的方式,如果某点是必败的,那么到达这个点的点必然是必胜的,如果当前点是必胜的,那么父亲节点的计…
题面 传送门 题目大意: 给你一个计算区间f函数的公式,举例f(1,2,4,8)=f(1⊕2,2⊕4,4⊕8)=f(3,6,12)=f(3⊕6,6⊕12)=f(5,10)=f(5⊕10)=f(15)=15 然后现在给你一个数列,n<=5000,然后q个询问,q<=100000,每次询问[l,r]区间内f函数的最大值是多少 分析 此题可用DP求解 设dp[i][j]dp[i][j]表示区间[i,j]f函数最大值 显然初始值dp[i][i]=a[i]dp[i][i]=a[i] 15 5 10 3…
题面 传送门 题目大意: 有一个黑白的棋盘,现在将棋盘上的一个子矩形全部染成黑色,另一个子矩形全部染成白色 求染完色后黑,白格子的总数 分析 我们可以发现,对于一个(1,1)到(x,y)的矩形,若xy为偶数,则黑.白的个数都是 $ \frac{xy}{2} $ 若xy为奇数,则黑格个数为\(\ [ \frac{xy}{2} \ ]\),白格个数为\(\ [ \frac{xy}{2} \ ]+1\) 因此用二维前缀和的方法就可以求出任意子矩形内的黑,白格子个数 long long get_whit…
AC代码 A. LCM Problem 若\(a < b\),则\(LCM(a,b)\)是\(a\)的整数倍且\(LCM(a,b) \ne a\),所以\(LCM(a,b) \ge 2a\),当且仅当\(b=2a\)时取等号. 根据这个性质,就可以让\(a=l, b = 2l\),如果符合条件就输出,否则无解. B. Array Walk 这题暴力+贪心做. 根据贪心,答案必定取在在同一个位置左右横跳的情况下. 由于\(z\)的取值很小,所以直接枚举走到第\(i\)个位置之后左右横跳\(c\)次…
\(Part\ 1:\) 我们发现每次修改动的是\(a\)串,所以对于这个答案的公式,\(b_{i+j}\)的部分是可以求出来的.所以我们可以把公式改成如下所示: \(f(j)=|\sum_{i=1}^{n}\ (-1)^i*b_{i+j}+\sum_{i=1}^{n}\ (-1)^{i-1}*a_{i}|\),\(0\le j\le m-n\). 第一部分可以预处理. 在预处理的过程中我们不管绝对值,也就是会出现负数,这一点很重要的. 但是呢,我们发现对于不同的\(j\),每一个\(i+j\)…
传送门 D. Restructuring Company time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Even the most successful company can go through a crisis period when you have to make a hard decision — to rest…
洛谷 Codeforces 看到题解那么少就来发一篇吧-- 思路 看完题目一脸懵逼,感觉无从下手. 莫名其妙地想到笛卡尔树,但笛卡尔树好像并没有太大作用. 考虑把笛卡尔树改一下:每个点的父亲设为它的右边第一个大于它的位置. 这时突然发现一个很好的性质:搞答案时每次从右边加入一个点\(x\)时,以\(x\)的子树中的一个点为起点的长度全都加一. 那么按dfs序建线段树维护区间和.区间加.单点修改为-INF(从左边删点)即可. 代码 #include<bits/stdc++.h> clock_t…
题目大意 考虑一个 $4$ 行 $n$ ($4\le n\le 1000$)列的矩阵 $f$,$f$ 中的元素为 * 或 . . 对 $f$ 进行若干次如下变换: 将一个 $k\times k$($1\le k \le 4$)的子矩阵中的元素全部替换为 .,代价为 $a_k$( $1 \le a_k \le 1000$). 求将 $f$ 中的元素全置为 * 所需的最小代价. 分析 很容易想到的做法是「状压 DP」. Codeforces 上把「状态压缩」这个方法称作「bitmasks」.我从 C…
题目描述: Playlist time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You have a playlist consisting of n songs. The -th song is characterized by two numbers *t**i* - its length and beauty respec…
Mr. Kitayuta vs. Bamboos 题目链接:http://codeforces.com/problemset/problem/505/E 参考:http://blog.csdn.net/qpswwww/article/details/46316647 贪心,二分 从数据规模上看,算法复杂度只能为O(n)或者O(nlgn),似乎不能直接求值,考虑二分MAX将求值问题转化为判定性问题.然而考虑到砍伐后竹子高度变为0的特殊情况,考虑倒着做,即初始时每个竹子高度均为MAXi,每天晚上每个…
2018.11.21: 1.[BZOJ 4868][SHOI 2017] 从后往前枚举最后位置即可,如果$A<B$,用尽可能多的$A$替换$B$操作 Tip:很大的$C$可能爆$longlong$,注意特判掉与$C$相乘超过上限的数! 2.[BZOJ 4872][SHOI 2017] 首先每个灯最多按一次,接下来发现正确按取集合唯一,只不过顺序任意 设$dp[i]$表示从正确按取$i$个到$i-1$个的期望次数,则有: $dp[i]=\frac{i}{n}+\frac{n-i}{n}*(dp[i…
A - Settlers' Training CodeForces - 63B 题意 给你一串数字,相同的数字为一组,每次可以给一组中的一个数字加一,问这一串数字全变成K需要多少步? 题解 模拟 C++代码 /** /*@author Victor /*language C++ */ //#include <bits/stdc++.h> #include<iostream> #include<algorithm> #include<cstdlib> #inc…
A - A CodeForces - 136A 题解:按输入的顺序输出对应的下标即可,定义一个数组,将输入的作为下标,下标为值,最后依次输出即可: #include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; int s[n+5],i,a; for(i=1;i<=n;i++) { cin>>a; s[a]=i; } for(i=1;i<=n;i++) { if(i==1)co…