开场开A,A题shl看错题意,被制止。然后开始手推A,此时byf看错E题题意,开始上机。推出A的规律后,shl看了E题,发现题意读错。写完A题,忘记判断N=0的情况,WA+1。过了A后,shl重新写E,lfw开始开J题,E题过不了样例,lfw多次起立让shl调试,然后shl拿到E的一血,lfw之后过了J。byf开始开I题,shl口胡出M做法,然后lfw和shl一起推G题。byf过了I题后,shl推出G题,byf去写。然后lfw开始计算几何,经过查错后过掉,然后shl开始开M题,过掉后还剩最后半小时,无题可做。
最后罚时很多,因为前期签到题过得太慢,A题40+分钟才过,J题1小时40分钟才过。
题解
A - Adrien and Austin
题解:给你n给石头,下标依次为1~n,然后两个人轮流取石头,每次取1~k个连续下标的石头,最后不能取得输掉比赛。问你谁会获胜。
找规律,首先,n==0时,第一个人必败。k==1时,n为奇数时先手必胜。k>1时,先手必胜.
参考代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 const int mod=1e9+7; 5 LL quick_pow(LL a,LL b) 6 { 7 LL ans=1; 8 while(b) 9 { 10 if(b&1) ans=ans*a%mod; 11 a=a*a%mod; 12 b>>=1; 13 } 14 return ans; 15 } 16 int main() 17 { 18 int t; 19 scanf("%d",&t); 20 int l24=quick_pow(24,mod-2); 21 while(t--) 22 { 23 int n; 24 scanf("%d",&n); 25 LL ans=1; 26 ans=ans*n%mod; 27 ans=ans*(n+1)%mod; 28 ans=ans*(n+2)%mod; 29 ans=ans*(n+3)%mod; 30 ans=ans*l24%mod; 31 printf("%lld\n",ans); 32 } 33 }