Codeforces 785 - A/B/C/D/E - (Undone)】的更多相关文章

链接:https://codeforces.com/contest/785 A - Anton and Polyhedrons #include<bits/stdc++.h> using namespace std; ; map<string,int> mp; int n,sum; string str; int main() { ios::sync_with_stdio(); cin.tie(), cout.tie(); mp.clear(); mp[; mp[; mp[; mp…
Codeforces 785 D.Anton and School - 2 题目大意:从一串由"(",")"组成的字符串中,找出有多少个子序列满足:序列长度为偶数,且前n/2个为"(",后n/2个为")": 思路:枚举每一个左括号,则以该左括号为左右分界的子序列个数为∑C(L-1,i)C(R,i+1)(其中L为该左括号向左的左括号数,R为该左括号向右的右括号数,i从0累加到L-1).而∑C(L-1,i)C(R,i+1)=∑C(…
Codeforces 785 E. Anton and Permutation 题目大意:给出n,q.n代表有一个元素从1到n的数组(对应索引1~n),q表示有q个查询.每次查询给出两个数l,r,要求将索引为l,r的两个数交换位置,并给出交换后数组中的逆序对数. 思路:此题用到了分块的思想,即将这组数分为bsz块,在每一块上建Fenwick树,对于每次查询,只需要处理l,r中间的块和l,r所在块受影响的部分.具体实现见代码及注释. #include<iostream> #include<…
题目链接:http://codeforces.com/contest/785/problem/D 我们可以枚举分界点,易知分界点左边和右边分别有多少个左括号和右括号,为了不计算重复我们强制要求选择分界点左边的那一个左括号(也就是说如果枚举的这个分界点的左边这个位置没有左括号就强制这个位置不产生贡献). 对于一个分界点我们记它左边有$le[x]$个左括号,右边有$ri[x]$个右括号. ${Ans=\sum_{x=1}^{n-1} \sum _{i=1}^{min(le[x]-1,ri[x]])}…
链接:https://codeforces.com/contest/1137 A - Skyscrapers 题解:对于每一段 $1$ 和每一段 $2$,统计他们的长度.因此对于相邻的两段长度求较小值,就有可能成为答案,维护所有的可能是答案的最大值即可. AC代码: #include<bits/stdc++.h> using namespace std; ; int n,t[maxn]; int l1,l2; int main() { cin>>n; ;i<=n;i++) s…
链接: A - Vanya and Fence - [水] AC代码: #include<bits/stdc++.h> using namespace std; ; int n,h; int main() { cin>>n>>h; ; ,a;i<=n;i++) { cin>>a; if(a<=h) ans++; ; } cout<<ans<<endl; } B - Vanya and Food Processor - [模…
链接:http://codeforces.com/contest/1062 A - Prank - [二分] 题意: 给出长度为 $n(1 \le n \le 100)$ 的数组 $a[1 \sim n]$,且满足 $1 \le a[1] < a[2] < \cdots < a[n] \le 1000$.现在JATC要擦掉其中一段连续的数字,但是要求能够通过剩余的其他数字,推断出擦掉的数字是什么.求JATC能擦掉的最长长度. 题解: 其实 $O(n)$ 就可以求出能擦掉的最长长度,但是因…
链接:http://codeforces.com/contest/1032/ 是真的真的真的忍不住想吐槽这题意是真的真的真的读不懂…… A - Kitchen Utensils - [简单数学题] 题意: 国王开宴会,总共有编号为 $1 \sim 100$ 种餐具用来组成一套餐具.组成一套餐具的要求是,每种餐具最多出现一只. 现在给 $k$ 个宾客每个人若干套餐具,给的每套餐具都是一模一样的:同时,每个人收到的餐具套数也都是相同的. 现在知道宴会开完后,还剩下 $n$ 个餐具,以及这 $n$ 个…
Anton and School - 2 题解: 枚举每个左括号作为必选的. 那么方案数就应该是下面的 1 , 然后不断化简, 通过范德蒙恒等式 , 可以将其化为一个组合数. 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdou…
链接:https://codeforces.com/contest/1154 A - Restoring Three Numbers - [水] #include<bits/stdc++.h> using namespace std; ]; int main() { cin>>a[]>>a[]>>a[]>>a[]; sort(a,a+); ;i<=;i++) printf(]-a[i]); } B - Make Them Equal - […