Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
52324 野兽先辈——田所浩二 折纸 C++ 通过 100 3686 MS 248 KB 764 2022-07-19 11:52:56

Tests(20/20):


#include<cstdio> #include<iostream> #define ll long long using namespace std; int k,n,m,a,b,c,l,r,h,mod=1e9+7; ll F; ll sum(int x) { ll res=0; int tag=x&1; for(int i=1;i<=k;i++) res=(res<<1)|((x&1)^((x>>i)&1)); return res; } ll calc() { if(l&1) { if(r&1) return sum(l)+1ll*(n-1)*((r-l)>>1); else return sum(l)+sum(r)+1ll*(n-1)*((r-l-1)>>1); } else { if(r&1) return ((r-l+1)>>1)&1 ? n-1:0; else return ((r-l)>>1)&1 ? sum(r+1):sum(r); } } int main() { scanf("%d%d%d%d%d%d%d",&k,&m,&l,&r,&a,&b,&c); n=1<<k; for(int i=1;i<=m;i++) { F=calc(); h=((l^r^h^F)+c)%mod; l=(l^a^h)%(n+1)%n; r=(r^b^h)%(n-l)+l; } printf("%d",h); return 0; } /* 30 5000000 4 5 273035200 65685838 991992535 */


测评信息: