首页 > 其他分享 >10.28 模拟赛小记

10.28 模拟赛小记

时间:2023-10-28 21:13:00浏览次数:41  
标签:取模 10 10.28 int 打表 答案 递推 模拟 小记

梦熊 10 连测的第八个了。

比赛地址

写在亲前面的总结:因为下午班级合唱比赛,所以不太想打比赛,想去看演出的。鉴于我们第一个唱完,以及班主任说节目可以看到 15:40,所以一直在玩上去的很晚。之后在机房继续看完了节目。所以本场打的还挺抽象。

更加难评的是这竟然是我打的最好的一场(?),有点开心,但还是破防了。


A

一开始根据爆搜想的 \(O(n)\) 的递推式子。

设 \(f[i]\) 表示长度为 \(i\) 时的方案数。

第 \(i\) 位有两种放发:若放 \(0\) 则答案不受限,同 \(f[i-1]\);放 \(1\),考虑 \(i-1\) 位放 \(0\),则 \(i-2\) 受限只能放 \(0\),答案即为 \(f[i-3]\);考虑 \(i-1\) 位放 \(1\),则第 \(i-2\) 位只能放 \(0\),此时 \(i-3\) 只能放 \(0\),则答案为 \(f[i-4]\)。这样就有 60pts 的好成绩了。

综上,\(f[i]=f[i-1]+f[i-3]+f[i-4]\)。

在我写完了这个递推式之后有了一个逆天的想法:它一定能打表预处理。于是我就开动了。

在这里详细记录一下我的打表方法。感觉最近打表能力日益增加。某种意义上讲,这是不可多得的第一手宝贵经验,很不容易的。

没有原因的写了一个答案取模之后的标记,标记取模后答案的分布情况个数。发现在去到大于模数的答案之后,这个统计就没有变过了。

这说明取模后的答案种类数固定,也就是可能出现了循环节。于是每次到达这个统计的极值之后,记录当前位置。最后输出,发现他们的差一样。整理了一下,就找到了循环节作为模数。完美结束。

赛后考虑到,递推式的取模序列,是否一定存在循环节?bdfs 了一下,只看到一篇 blog 提到了这个问题,感觉挺有道理的但是我无法证明他的正确性。

于是找了同机房大佬 @御坂17379号 帮忙看。他认为差不多是正确的,所以这里就认为它是正确的。

结论:递推式的取模序列一定存在循环节。

只是找起来有些麻烦。有一种暴力的美。嗯。个人认为打表有助于提升专注度,愉悦身心,陶冶情操。

下面是我美丽的码。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e7+10;
const int mod=10007;
ll t;
int n;
int a[N];
void solve(){
	a[0]=1,a[1]=2,a[2]=4,a[3]=6,a[4]=9;
	for(int i=5;i<=20016;i++){
		a[i]=a[i-1]+a[i-3]+a[i-4];
		a[i]=a[i]%mod;
	}
	n=(t%20016);
	printf("%d",a[n]);
}
int main(){
	freopen("queue.in","r",stdin);
	freopen("queue.out","w",stdout); 
	scanf("%lld",&t);
	if(t>=N-10){
		solve();
		return 0;
	}
	n=(int)t;
	a[1]=2,a[2]=4,a[3]=6,a[4]=9;
	for(int i=5;i<=n;i++){
		a[i]=a[i-1]+a[i-3]+a[i-4];
		a[i]=a[i]%mod;
	}
	printf("%d",a[n]);
}

正解是矩阵乘法。鉴于我不熟练这种东西,遂暂无下文。


B

我写的链结果他说忘了放链的数据忘记放了。我说我的分怎么没了。破防了。

链的写法是求最最多的不相交的区间个数。这是道橙的贪心,之前博客里还写过,第一反应是不太会写的。成煞笔了。题目传送门

正解 lca 相关,正在看。同机房大佬写了 n^2 的 dp。啊。我是飞舞啊。


C

赛时并没有看这道题,现在也没看。所以咕咕了。

P5188 [COCI2009-2010#4] PALACINKE


最后 9s 的时候交上了爆搜的码,有足足 15pts 我太开心了。然后其他还没写。


你看吧,我只会咕咕咕咕咕。

标签:取模,10,10.28,int,打表,答案,递推,模拟,小记
From: https://www.cnblogs.com/Moyyer-suiy/p/17794637.html

相关文章

  • 10.28每日总结
    最近几天心情不太好,想了很多事情,为什么要这么做,我真正想要什么,好像做什么也不对万幸的是,我还能找到答案:1.我们要有自己的思想,如果失败与错误需要反思,那么成功的经验也同样重要。2.人生想要什么就要学会自己努力去争取,因为畏惧失败或者恐惧现实,就把想法藏在心中,成为一个自欺欺人......
  • 考场(NOIP2023模拟5联测26)
    T1题目好评,但是hanzelic小姐是大主播啊。对于\(a_1\)^\(a_2\)^\(a_3\)^\(a_4\)......来说,要让\(a_2\)^\(a_3\)^\(a_4\)最小。啊,为什么我觉得运算顺序不会对这个题造成影响啊QAQ,我是菜狗QAQ。奥,我的意思是让所有次幂乘起来最小,因为\(x*y\)一定小于等于\(x^y......
  • C# Post 模拟表单提交
    ///<summary>///向指定的URL地址发起一个POST请求。///</summary>///<paramname="url">要请求的URL地址</param>///<paramname="keyvalues">要上传的数据项</param>///<retur......
  • 逆向工商银行APP模拟器,并提供具体思路和教程
    这也是我们从网上找到的一个模拟器,那么我们今天的任务就是去逆向开发它,修改它的一些属性和元素,用到的工具为mt管理器,以雷电模拟器做为演示我们先把这个确定更改为自己想要的字体内容,我做演示,还是进入包里面去搜索字符已经定位到了这里 然后点确定,重新编译一下看到没,现在我......
  • 逆向招商银行模拟器app,自定义修改任何元素,详细教程
    我今天闲着没事,就从网上找来了一个破解版的招商银行模拟器,然后这个APP呢是破解版,我们在给它继续完善优化一下吧。 因为这个版本存在众多问题,打开后会提示出来一个作者附加的信息,我下面给大家截图。出现这种提示非常麻烦,我这边要弄的通过逆向的办法把这个提示直接删除掉或者......
  • NOIP2023模拟5联测26 题解
    NOIP2023模拟5联测26题解感觉我这场的官方题解写的是真的挺好的,所以我只能作少量补充。你可以直接去看官方题解,如果你想的话。T1x题解\(n=2\)没啥可说的。\(\color{white}{这档分你要是没拿到那你还是蛮强的。}\)\(n=3\)的时候,我们需要比较\((a_1^{a_2})^{a_3}\)与......
  • Vue.js框架:vue3引入mockjs模拟数据调试
    一、引入依赖1、安装依赖包在终端中使用以下命令:npminstall@types/mockjs--save此处使用了@types进行引入,是因为在.ts文件引用包时,默认必须有类型声明,不能是any。有很多依赖包是用纯JS写的,没有类型声明。因此使用@types作为类型声明的集......
  • 10.28/例题2
    #include<bits/stdc++.h>usingnamespacestd;inta[6],n,sum=0,p,t;voidone(){ for(inti=0;i<5;i++){for(intj=0;j<5-i;j++){if(a[j]<a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t;}......
  • 「Log」2023.10.27 小记
    序幕\(\text{6:50}\):到校,早上稍微墨迹了一小会。一直不会的某个结论差不多会证明了,先写一下题再写写题解。\(\color{blueviolet}{CF1495D}\)此题是好题。考虑对于\(x\)和\(y\)共同的生成树一定包含两者的最短路径。先假设\(x,y\)最短路径有且只有一条,考虑其上一点\(......
  • 反编译建设银行高仿app模拟器,修改里面的任何元素教程
    我研究了一下网上这个建设银行模拟器,有些东西是可以改有些是改不了的,比如名称可以长按修改 那么我们比如说想要把那个LOGO头像改成自定义的怎么改呢?其实这个也是有办法的,很简单,只需要替换/assets/res/目录下的指定文件即可我下面做一个演示哈,大家跟着我操作就行了目前是怎么......