原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round8.html
不存在的
可怕!两道 oeis 题。
可怕!时间和百度之星重合了。
可怕!I 题会做写不动。
可怕!E 题死命的 wa 却总以为是 $\min(n,m)=1$ 的时候出了锅。
赛后某 rk2 大佬微微一笑,说:题面出锅了……后来,题面上面加了个 $\min(n,m)>=2$ ,然而我并没有发现。于是就把主要精力放在了 找 $\min(n,m)=1$ 时的锅 上。结果却忽略了自环QAQ 。
I 反正是 piano 写了180行弃了。
updating……
B - oeis 题
#include <bits/stdc++.h> using namespace std; const int N=1<<19,mod=998244353; int n,Fac[N],Inv[N]; int Pow(int x,int y){ int ans=1; for (;y;y>>=1,x=1LL*x*x%mod) if (y&1) ans=1LL*ans*x%mod; return ans; } int C(int n,int m){ if (m<0||m>n) return 0; return 1LL*Fac[n]*Inv[m]%mod*Inv[n-m]%mod; } int main(){ scanf("%d",&n); n--; if (n==0){ printf("1"); return 0; } Fac[0]=Inv[0]=1; for (int i=1;i<=n;i++){ Fac[i]=1LL*Fac[i-1]*i%mod; Inv[i]=Pow(Fac[i],mod-2); } int ans=0; for (int i=0;i<=n;i++){ ans=(1LL*Pow(2,i)*C(n,i)%mod*C(n,i-1)%mod+ans)%mod; } ans=1LL*ans*Pow(n,mod-2)%mod; printf("%d",ans); return 0; } //For n > 0, a(n) = (1/n)*sum(k = 0, n, 2^k*C(n, k)*C(n, k-1))
E
#include <bits/stdc++.h> #define y1 _zzd001 using namespace std; int T,n,m,k,x1,y1,x2,y2; int main(){ scanf("%d",&T); while (T--){ scanf("%d%d%d",&n,&m,&k); int f=0; while (k--){ scanf("%d%d%d%d",&x1,&y1,&x2,&y2); if (x1==x2&&y1==y2) continue; if ((x1+y1)%2==0&&(x2+y2)%2==0) f=1; } if (f||n%2==0||m%2==0) printf("%d\n",n*m); else printf("%d\n",n*m+1); } return 0; }
G - oeis 题
#include <bits/stdc++.h> using namespace std; const int mod=1e9+7; int n; int Pow(int x,int y){ int ans=1; for (;y;y>>=1,x=1LL*x*x%mod) if (y&1) ans=1LL*ans*x%mod; return ans; } int main(){ scanf("%d",&n); n=(24LL-42LL*n%mod+23LL*n%mod*n%mod-6LL*n%mod*n%mod*n%mod +1LL*n*n%mod*n%mod*n%mod)*Pow(24,mod-2)%mod; printf("%d",(n+mod)%mod); return 0; }
H 题解预定
原文:https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round8.html