嗯。。。所谓RP守恒?

仍然延续着好一场烂一场的规律。

虽说我也想打破这个规律,但是并不想在考烂之后打破这个规律。(因为下一场要考好???)

我也不知道我现在是什么状态,相较于前一阶段有所提升(第一鸡房的buff?)

但是明显还有提升空间。也可以看到离上面的差距有多大。

(在去食堂的路上一顿爆捶捶傻skyh就能进步一名了hhh)

这场考试呢,T1正路是推式子然而我又开始疯狂打表找规律,最后得到了一个和正解没什么关系但是能拿到80分的式子。

也肝了一个小时,然后就停止在80分了。

并不是没有在化式子,而是化的不彻底,没有到最终可做的形式。

然后T2是个板子就写了。没调没对拍,着急进T3。(又不像某些人考前打对拍。。。)

T3想直接奔着最终答案去,于是就先上了个暴力,对着excel看了挺久,找到一些规律但是不能用于做题。

最后20分钟左右的时候想到了n3的思路,但是细节较多来不及打了,时间分配不够。还是给T3分的时间不够多。

最后交了暴力。最后几分钟打了21~25的表但是没有数据,数据是28。如果提前几分钟开始打就多20分了。。。

然后就没有然后了。

还好,仍然是在持续的思考。没挂机没摸鱼。

但是某些考试技巧还是要练的。。。如打表之类。。。

不要尝试找n2的表的规律,很困难而且浪费时间。

分配一些时间给打表交表也是不错的。

T1:神炎皇

考场上的发现是$- n +\sum \limits_{i=1}^{n} \sqrt{i的最大平方因子}$

枚举这个因子,此后就不应再有平方因子,运用莫比乌斯函数的实际意义进行容斥,得到

$= - n + \sum \limits_{d=1}^{\sqrt{n}} d \sum \limits _{k=1}^{\left \lfloor \frac{n}{d^2} \right \rfloor} \mu (k) \times \left \lfloor \frac{n}{d^2 k^2} \right \rfloor$

这样的式子的复杂度外层是$\sqrt{n}$,内层是调和级数,所以总的复杂度是$O( \sqrt{n} ln \sqrt{n} )$,有80分。

而正解是考虑ab的最大公约数,设$gcd(i,j)=g$,$a=gx$,$b=gy$

那么有$xyg^2 mod (x+y)g =0$。因为xy互质,所以xy与x+y互质

所以$g mod (x+y) =0 $,所以$g>=x+y$。那么根据题目的限制$a+b<=n$则$(x+y)g<=n$

有$x+y<=n$。那么就枚举$k=x+y$。求数对$x,y$的数量。

因为$y$与$x$互质,所以$x+y$与$x$互质,所以确定$k$后可行的$x$就有$\varphi (k)$个。

然后可行的$g$的个数就是$\frac{n}{k^2}$个。

那么最终的答案就是$\sum \limits_{k=1}^{\sqrt{n}} \varphi (k) \times \frac{n}{k^2}$

最终复杂度$ O( \sqrt{n} ) $

 #include<cstdio>
int phi[],p[],pcnt;char np[];long long n,ans;
int main(){
for(int i=;i<=;++i){
if(!np[i])p[++pcnt]=i,phi[i]=i-;
for(int j=;j<=pcnt&&i*p[j]<=;++j)
if(i%p[j])phi[i*p[j]]=phi[i]*(p[j]-),np[i*p[j]]=;
else {phi[i*p[j]]=phi[i]*p[j],np[i*p[j]]=;break;}
}
scanf("%lld",&n);
for(long long i=;i*i<=n;++i)ans+=n/i/i*phi[i];
printf("%lld\n",ans);
}

T2:降雷皇

一个比较普通的线段树dp,只不过记录了一下方案。

算是个板子吧。

 #include<cstdio>
#define mod 123456789
int Mod(int p){return p>=mod?p-mod:p;}
struct state{
int dp,pl;
friend state operator+(state x,state y){
if(x.dp<y.dp)return y;
if(y.dp<x.dp)return x;
return (state){x.dp,Mod(x.pl+y.pl)};
}
}w[],O;
int cl[],cr[],x[];
void build(int p,int l,int r){
cl[p]=l;cr[p]=r;
if(l==r){w[p]=(state){,l?:};return;}
build(p<<,l,l+r>>);build(p<<|,(l+r>>)+,r);
w[p]=w[p<<]+w[p<<|];
}
void chg(int p,int pos,state nw){
if(cl[p]==cr[p]){w[p]=w[p]+nw;return;}
chg(pos<=cl[p]+cr[p]>>?p<<:p<<|,pos,nw);
w[p]=w[p<<]+w[p<<|];
}
state ask(int p,int l,int r){
if(l<=cl[p]&&cr[p]<=r)return w[p];
return ask(p<<,l,r)+(r>=cl[p<<|]?ask(p<<|,l,r):O);
}
int main(){
int n,opt,x;scanf("%d%d",&n,&opt);
build(,,);
while(n--){
scanf("%d",&x);
state bst=ask(,,x-);bst.dp++;
chg(,x,bst);
}
state ans=ask(,,);
printf("%d\n",ans.dp);
if(opt==)printf("%d\n",ans.pl);
}

T3:幻魔皇

斐波那契树当然离不开斐波那契数列。还记得那个兔子的例子?

白点是小兔子,黑点是老兔子。

在相同时间年龄相同的兔子,其子树完全相同。

既然要求树上的距离,那么肯定是要知道最近公共祖先的。

如果两个白点存在祖先关系那么它们的祖先就是老的那一个白点,否则就是一个黑点。

那么考虑枚举每一个点,考虑它为lca时子数的贡献。

如果是个白点,那么其对距离为i的点对的贡献就是它第i代后代中白点的数量,就是fib[i]。

(具体是fib的第几项可能因人而异,因为我的fib[0]=1,fib[1]=0)

然后枚举每一层的全部白点,它们的数量也就是个fib数,n2解决所有祖先关系的白点对的贡献。

如果lca是黑点,那么黑点有一个黑儿子一个白儿子,lca是它的话那么两个白点要分别在两个子数内。

处理层数为1的,答案为0。

不断考虑层数更高的,其新的贡献就是白儿子的新的一层与原有黑儿子的贡献,以及黑儿子新的一层与新的白儿子的贡献。

具体就是一大堆的fib数。处理出f[i][j]表示深度为i的黑根树对答案j的贡献,乘上整棵树里有多少个这样的黑点即可。

答案数组开10000。而不是5000。(我稍蠢,嗯)

复杂度$O(n^2)$

 #include<cstdio>
#define int long long
#define mod 123456789
int fib[],ans[],f[][];
main(){
int n;scanf("%lld",&n);
fib[]=;
for(int i=;i<=n;++i)fib[i]=(fib[i-]+fib[i-])%mod;
for(int i=;i<n;++i)for(int j=;j<n-i;++j)(ans[j]+=fib[i]*fib[j])%=mod;
for(int i=;i<n;++i){
for(int j=;j<=n<<;++j)f[i][j]=f[i-][j];
for(int j=;j<=i;++j)(f[i][i+j]+=fib[i-]*fib[j])%=mod;
for(int j=;j<i;++j)(f[i][i+j]+=fib[i]*fib[j-])%=mod;
}
for(int i=;i<n;++i)for(int j=;j<=n<<;++j)(ans[j]+=f[n-i][j]*fib[i])%=mod;
for(int i=;i<=n<<;++i)printf("%lld ",ans[i]);puts("");
}

[考试反思]1010csp-s模拟测试67:摸索的更多相关文章

  1. [考试反思]0718 NOIP模拟测试5

    最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...

  2. [CSP-S模拟测试67]题解

    时隔多年,终于又有了一套我能改完的题…… A.神炎皇 遇到这种要求整除的题显然拆出gcd 设$d=gcd(a,b)\ \ \ a'=\frac{a}{d} \ \ \ b'=\frac{b}{d}$ ...

  3. [考试反思]0814NOIP模拟测试21

    前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...

  4. [考试反思]1109csp-s模拟测试106:撞词

    (撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...

  5. [考试反思]0909csp-s模拟测试41:反典

    说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ...

  6. [考试反思]0729NOIP模拟测试10

    安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...

  7. [考试反思]0714/0716,NOIP模拟测试3/4

    这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...

  8. [考试反思]1003csp-s模拟测试58:沉淀

    稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...

  9. [考试反思]0816NOIP模拟测试23

    210 210 210 170 还可以.暴力打满就rk4了? 但不管怎么说,总算是在改完题之后理直气壮的写考试反思了. T1是个dp,说水也不太水.(当然某脸只要A掉了一道题就要说那是水题) 我的思路 ...

随机推荐

  1. 访问http接口时返回502 Bad Getway什么原因怎么解决

    使用 httpclient 工具通过代理服务器请求第三方http 接口,多次返回 502 Bad Getway,少数返回正常. 502 Bad Getway是什么意思? 502 Bad Gateway ...

  2. execute,executeQuery,executeUpdate

    Statement的execute(String query)方法用来执行任意的SQL查询,如果查询的结果是一个ResultSet,这个方法就返回true.如果结果不是ResultSet,比如inse ...

  3. LeetCode_232-Implement Queue using Stacks

    题意是使用栈实现队列:队列是先进先出,后进后出. class MyQueue { public: /** Initialize your data structure here. */ MyQueue ...

  4. [AI开发]视频结构化类应用的局限性

    算法不是通用的,基于深度学习的应用系统不但做不到通用,即使对于同一类业务场景,还需要为每个场景做定制.特殊处理,这样才能有可能到达实用标准.这种局限性在计算机视觉领域的应用中表现得尤其突出,本文介绍基 ...

  5. conversion function——转换函数

    类型转换函数 与 explicit关键字 1.类型转换函数 在C++中,可以使用构造函数将一个指定类型的数据转换为类的对象,也可以使用类型转换函数 (type conversion function) ...

  6. Numpy中的一点小知识

    train_set_x_orig, train_set_y, test_set_x_orig, test_set_y, classes = load_dataset()train_set_x_orig ...

  7. Spring Boot Actuator 整合 Prometheus

    简介 Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况.Bean加载情况.环境变量.日志信息.线程信息等.这一节结合 Prometheus .G ...

  8. OpenCV支持Qt用户界面

    在运行opencv程序的时候报下面的错误: ... The library is compiled without QT support in function ... 原因是在使用cmake安装op ...

  9. SVN工具常用功能总结

    使用SVN作为版本管理工具,可以使用VisualSVN Server+TortoiseSVN搭建SVN版本控制系统,组长安装VisualSVN Server,组员安装TortoiseSVN. Tort ...

  10. 【Spring Cloud】服务容错保护:Hystrix(四)

    一.雪崩效应 在微服务架构中,由于服务和服务之间可以互相调用,一项工作的完成可能会依赖调用多个微服务模块,但由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就 ...