AtCoder Regular Contest 191 (Div. 2) ARC191A Replace Digits除了最后一个字符必须在 ss 中,其他字符都是随意的。从高往低一次填即可,能填最后一个就填,否则就填前面的。最后再把最后一个字符放到最后一个位置即可。constexpr int N = 1e6 + 5;...
AtCoder Regular Contest 192 (Div. 2) ARC192A ARC Arc把需要的状态全记下来,然后直接 DP。constexpr int N = 2e5 + 5; bool f[N][3][3][4]; void slv() { int n = Read<int>(); vector<int> A(n); for (int i = 0; i < n; i ++) { Read(A[i]); } auto chk = [&](...
We will hold AtCoder Regular Contest 191 (Div. 2). Contest URL: https://atcoder.jp/contests/arc191 Start Time: http://www.timeanddate.com/worldclock/fixedtime.html?iso=20250126T2100&p1=248 Duration: 120 minutes Number of Tasks: 5 Writer: sounansya Tester: Nyaan, maspy Rated range: ...
j -= 1; LL len = j - i + 1; if(len == 1) continue; else if(len%2 == 0){ //偶数个可以全部消除 for(LL k=i;k<=j;k++){ st[k] = true; } } else{ //奇数个就选出奇数里最大的负数 LL maxv = - INT_MAX; LL t = -1; for(LL k=i;k<=j;k+=2) //1,3,5,....
优化三:如果存在直连边,因为是点权,就不跑最短路直接返回w[s] + w[t] dij贪心特点优化:第一次更新重点直接跳出+优化一(可以过7个点) 优化一+二+三:通过9个点,最坏情况仍然是qnlog(n^2) 正解思路: PS:其实数据范围给提示了 情况一:有直连边 ...
1026 A - Two Regular Polygons GNU C++17 geometry greedy math number theory *800 Apr/17/2023 17:09 1025 B - Young Explorers GNU C++17 dp greedy sortings *1200 Apr/16/2023 15:49 1024 B - JoJo's Incredible Adventures GNU C++17 math strings two pointers *1100 Apr/15/2023 18:51 1023...
Petrozavodsk Winter-2018. AtCoder Contest. Problem I. ADD, DIV, MAX 吉司机线段树 题意:给你一个序列,需要支持以下操作:1:区间内的所有数加上某个值。2:区间内的所有数除以某个数(向下取整)。3:询问某个区间内的最大值。 思路(从未见过的套路):维护区间最大值和区间最小值,执行2操作时,继续向下寻找...
https://codeforces.com/contest/1833 div3D 题意 给你一个[1..n]的排列,你必须选择一个区间[l,r],1≤l≤r≤n让这一段反转,然后,交换前后缀的位置,也就是互换[1,l−1],[r+1,n]的位置,那么最终的结果应该是这样的三段接合在一起:[r+1,n],[r..l],[1,l−1]。
#include<bits/stdc++.h> usingnamespacestd; #definepb push_back #defineendl'\n' #defineLL long long constintN =5e5+10; intn, a[N], l[N], r[N]; LL pre[N], suf[N], b[N]; voidsolve(){ cin >> n; for(inti =1; i <= n; i++) { ...
AtCoder Regular Contest 194 (Div. 2) ARC194A Operations on a Stack发现一定是删掉若干段偶数长度的不选,直接 DP 即可做到线性。void slv() { int n = Read<int>(); vector<int> A(n); for (int i = 0; i < n; i ++) { Read(A[i]); } vector<array<ll, 3>> f(n); f[0][2]...