ACM区域赛「徐州2019」A. Cat

    技术2022-07-10  129

    考虑这样一个性质,偶奇偶奇异或值为0. 所以五个连续的数一定可以找出这样的结构. 所以边界一定不会出现五个不用的数,那么左边右边都枚举四个即可.

    #include<bits/stdc++.h> using namespace std; #define ll long long #define MAXN 100005 #define rep(n) for(int i=1;i<=n;i++) #define rall(x) for(int i=(x).size()-1;i>=0;i--) #define all(x) for(int i=0;i<(x).size();i++) int nxt[MAXN]; int col[MAXN]; int vis[MAXN]; const ll mod=998244353; ll solve(ll l,ll r,ll s) { ll now=(l%2?l:0)^(r%2?0:r)^((r-(r%2==0)-l+1-(l%2))/2%2); return (now<=s)?r-l+1:0; } int main() { int t; cin >> t; while (t--) { ll l, r, s; scanf("%lld%lld%lld", &l, &r, &s); ll ans=-1; for(ll L=l;L<=l+3;L++) for(ll R=r-3;R<=r;R++) { if(L<=R&&solve(L,R,s)) ans=max(ans,solve(L,R,s)); } printf("%lld\n",ans); } }
    Processed: 0.012, SQL: 9