首页 > 其他分享 >Codeforces Round #822 D,E

Codeforces Round #822 D,E

时间:2022-09-24 16:12:38浏览次数:44  
标签:const int sum Codeforces c2 c1 822 Round define

E. Rectangular Congruence

我们考虑对 ar1,c1+ar2,c2 ≢ ar1,c2+ar2,c1(modn) (同余情况下 不同也是可以同时加任意数的 可以感性理解一下)
ar1,c1 - ar1,c2 ≢ ar2,c1 - ar2,c2(modn)
这个的意思就是我们没一行的公差不同即可
我们可以按照每一行 0 1 2 3 的公差分别以bi构造即可
实际上 我们设 |c2-c1|=k
该等式就变成了 k*|dr1-dr2|%n!=0 显然我们k是<n的 我们只要让di-dj没有n即可

#include <bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
const int M = 998244353;
const int mod = 998244353;
#define int long long
#define endl '\n'
#define all(x) (x).begin(),(x).end()
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define _ 0
#define pi acos(-1)
#define INF 0x3f3f3f3f3f3f3f3f
#define fast ios::sync_with_stdio(false);cin.tie(nullptr);

void solve() {
    int n;cin >> n;
    for (int i = 0; i < n; i++) {
        int b;cin >> b;
        for (int j = 0; j < n; j++) {
            cout << (i * (j - i + n) + b) % n << " ";
        }
        cout<<endl;
    }
}
signed main(){
    fast
    int T;cin>>T;
    while(T--) {
        solve();
    }
    return ~~(0^_^0);
}

D. Slime Escape

我们考虑贪心
我们考虑从任意方向出发 记录能走到的哪,最大的能到达的health是多少
如果走不动了 那我们再倒回去走 这时候我们考虑最优情况就是到达最大health的时候倒回去
这样重复即可

#include <bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
const int M = 998244353;
const int mod = 998244353;
#define int long long
#define endl '\n'
#define all(x) (x).begin(),(x).end()
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define _ 0
#define pi acos(-1)
#define INF 0x3f3f3f3f3f3f3f3f
#define fast ios::sync_with_stdio(false);cin.tie(nullptr);

void solve() {
    int n,k;cin>>n>>k;
    vector<int>a(n+1);
    for(int i=1;i<=n;i++)cin>>a[i];
    int L=k-1,R=k+1,L_sum=0,R_sum=0,Lmx=0,Rmx=0;
    while(1<=L&&R<=n){
        bool flag=1;
        while(1<=L&&L_sum+Rmx+a[k]+a[L]>=0){
            flag=0;
            L_sum+=a[L--];
            Lmx=max(Lmx,L_sum);
        }
        while(R<=n&&R_sum+Lmx+a[k]+a[R]>=0){
            flag=0;
            R_sum+=a[R++];
            Rmx=max(Rmx,R_sum);
        }
        if(flag){NO return;}
    }
    YES
}
signed main(){
    fast
    int T;cin>>T;
    while(T--) {
        solve();
    }
    return ~~(0^_^0);
}

标签:const,int,sum,Codeforces,c2,c1,822,Round,define
From: https://www.cnblogs.com/ycllz/p/16725815.html

相关文章

  • CF Round 822 Div2 题解
    比赛链接A题SelectThreeSticks(签到)给定\(n\)根木棒,第\(i\)根木棒的长度为\(a_i\)。现在我们可以进行操作,每次操作选定一根木棒,将其长度增高或减少1。问至少需......
  • Codeforces Round #822 Div.2 整场题解
    目前还有E,F没有更新。A.SelectThreeSticks直接对\(a\)排序,选出来的木棍一定是相邻三项,都往中间靠更优。B.Bright,Nice,Brilliant最优方案就是每一行第一个......
  • python中round函数的一个小坑——奇进偶弃
    python中round函数的一个小坑——奇进偶弃 >>>round(3.1415,3)3.142>>>round(4.1415,3)4.141 >>>round(10.5)10>>>round(11.5)12 ......
  • Codeforces Round #640 (Div. 4) D. Alice, Bob and Candies
    CodeforcesRound#640(Div.4)翻译岛田小雅D.Alice,BobandCandies出题人MikeMirzayanov\(n\)个糖果排成一排,从左到右分别被编号为\(1\)到\(n\)。第\(i\)......
  • Roadside Trees (Simplified Edition) CodeForces - 265B
    RoadsideTrees(SimplifiedEdition)CodeForces-265B松鼠Liss喜欢坚果。一条街上有n棵树(从西到东编号为1到n),每棵树的顶部都有一颗美味的坚果。树的高度我很高。......
  • Nikita and string CodeForces - 877B
    NikitaandstringCodeForces-877B有一个全由a和b组成的字符串,可以切成三部分。满足如下规则:第一部分只包含a或者是空串。第二部分只包含b或者是空串。第三部分只......
  • Barrels CodeForces - 1430B
    BarrelsCodeForces-1430B你有n个桶放在一排,从左到右开始编号分别为1~n.最初,第i桶装的水是ai升.你可以把水从一个桶倒到另一个桶。在这个过程中,你可以......
  • Fair Numbers CodeForces - 1465B
    FairNumbersCodeForces-1465B我们定义一个好数规则如下:它能够整除自己的每一个非零位。例如说,102是一个好数,因为它能整除1和2。282则不是,因为它不能整除8。......
  • Split Into Two Sets CodeForces - 1702E
    SplitIntoTwoSetsCodeForces-1702EPolycarp有一副有n张牌的(数字n为偶数)多米诺骨牌.每张多米诺骨牌上写有两个在1到n之间的数字.请问能否把骨牌分成两......
  • P2822 [NOIP2016 提高组] 组合数问题
    P2822[NOIP2016提高组]组合数问题题解作者岛田小雅这是一道复杂度非常容易爆炸的问题。我看到这题的第一眼,第一反应是直接按照公式暴力跑。我们看一眼数据范围。如......