那一天我们许下约定 内部题,题干不粘了. $30分算法$ 首先看数据范围,可以写出来一个普通dp #include<bits/stdc++.h> #define ll int #define A 2100 #define mod 998244353 using namespace std; ll f[1501][A+A+A],n,d,m; int main() { scanf("%d%d%d",&n,&d,&m); while(n!=0&&a…
反思: 我考得最炸的一次 怎么说呢?简单的两个题0分,稍难(我还不敢说难,肯定又有人喷我)42分 前10分钟看T1,不会,觉得不可做,完全不可做,把它跳了 最后10分钟看T1,发现一个有点用的性质,仍然认为不可实现 0分 所以T1是什么样的难题呢 即使暴力也有60分,但我楞没想出来暴力怎么打 然后我就挂掉了 t2又是什么样难题 大多数人秒切一个小时切两道, 但这次考试给了我很大启迪,也正是这次考试我才开始使劲刚T1 其实大多数T1都是比较简单的,并没有想象中那么难,这次考试对我来说意义很大 (就…
magic 题解 首先原式指数肯定会爆$long$ $long$ 首先根据欧拉定理我们可以将原式换成$N^{\sum\limits_{i=1}^{i<=N} [gcd(i,N)==1] C_{G}^{i}  \%phi(p)}\%p$ 根据欧拉函数是积性的得出$phi(54184622)=phi(2)*phi(27092311)$ 然后$phi(27092311)=27092310$  $phi(2)=1$所以$phi(54184622)=27092310$ 于是我们现在要求的就是$N^{\su…
折纸 题解 考试时无限接近正解,然而最终也只是接近而已了 考虑模拟会爆炸,拿手折纸条试一试,很简单 考你动手能力 代码 #include<bits/stdc++.h> using namespace std; #define ll long long #define A 3100000 ll cj[A],questions[A]; ll len,l,r,n,QAQ; int main(){ scanf("%lld%lld",&len,&QAQ); l=0,r…
待补 引子 题解 大模拟,注意细节 代码1 #include<bits/stdc++.h> using namespace std; int n,m;char a[1005][1005];bool vst[1005][1005]; void solve(int na,int nb) { int i=na,j=nb,now=0; while(1){ j++;if(a[na][j]=='+')break; } while(1){ i++;if(a[i][nb]=='+')break; } for(…
大佬 显然假期望 我奇思妙想出了一个式子$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{k \times j}^{k}\times w[j]$ 然后一想不对得容斥 于是我得到$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{j\times(k-1)}^{k-1} \times w[j]$ 但还是不对 现在思考第一个式子为什么不对 我们枚举矩阵选数 1 2 3 1 2 3 1 2 3 这样我们C的话概率会很鬼$\frac {4}{…
164分 rank11/64 这次考的不算太差,但是并没有多大的可能性反超(只比一小部分人高十几分而已),时间分配还是不均,T2两个半小时,T1半个小时,T3-额十几分钟吧 然额付出总是与回报成反比的,T1切了,T2超时60分,T3拿到了4分的好成绩,但某位不愿透露姓名的王鹤松说,他花了将近俩小时在T1上,20分钟T2,结果T1没有切掉,T2 比我高十分(QWQ) 这场考试下来发现自己还是有点儿紧张,中间去了好几次WC 对于这场考试,遗憾的是时间分配不均,没有拿到足够高的分数来给自己上保险,不过…
考试时打的类似$n^2$暴力,然后炸了只有10分 后来验证我的算法伪了. 题解 显然你有一种解法,假设你要在一个B点断开将R分别移向最左 最右,这样只用分别计算B点右面蓝色数量左面蓝色数量就得到了一个ans 这个题有一个很不显然的结论,假设你要将R移向两边时,序列唯一确定时,设pos=(蓝色数量+1)/2,在pos点将R移向左面,右面花费最小(单调性) 因为这个序列是循环的所以我们只要枚举B点断开的位置就可以$n^2$求出最小的ans值 $n^2$显然过不了1000000 现在我们思考$n^2$…
金 辗转相减见祖宗 高精 #include<bits/stdc++.h> using namespace std; #define A 2000 #define P 1 #define N 10 #define ll long long ll n,T; char sjdfj[A]; struct bignum { ll n[A],l; bignum(){l=1,memset(n,0,sizeof(n));} void clear(){while(l>1&&!n[l-1])…
写这几个题解我觉得我就像在按照官方题解抄一样 阴阳 题解 将题目中给的阴阳看作黑色和白色 首先我们观察到最后生成图中某种颜色必须是竖着单调递增或竖着单调递减 类似这样 否则不满足这个条件 但合法染色方案必须满足任意两个同颜色格子之间的格子也必须是该颜色. 然后我们分四种情况统计, 1.黑色居于左侧而且分界点单调不降, 2.黑色居于左侧而且分界点单调不升, 3.白色居于左侧而且分界点单调不降, 4.白色居于左侧而且分界点单调不升. 我们发现这样会算重, dp然后手动容斥, 1,2会算重左面每列全是…