首页 > 其他分享 >初三下——NOIP 模拟赛(1~5)

初三下——NOIP 模拟赛(1~5)

时间:2024-05-04 20:23:35浏览次数:26  
标签:NOIP int T4 T2 T3 T1 模拟 初三 dp

R1

rk10-。220pts。

T23 都读错题。浪费了将近 60 分钟。改。

T2 对于组合的掌握仍然不够熟练。找规律考虑每个点的贡献,应该使用 0/1,而不是原数。转化过后可以在 01 矩阵上找规律了。(现在还是没搞懂那个原理)

=》 组合 \((i, j)\bmod 2 = 1\),当前仅当 j 在二进制下是 i 的子集,根据这个高维前缀和。

T4 的套路:乘法构造可以根号分治。(<= sqrt 表示当前 mul;<= 2sqrt 表示还要多少 mul)


R2

rk20+。90pts。绑点要求不挂分的能力。

T1 这种小傻逼题目要加强练习。必须做出来。

部分分打完过后一定对拍,不要依赖大数据,假的。(T3 分层图+lsh错 3 个点挂 0)

T2 的 ODT get 到了,新知识。

T3 感觉是道很好的题,通过性质优化最短路的选择。反正我思考了很久。

不骄不躁,不气馁,做好每一步就是。


R3

rk6。265pts。

还好 T1 对拍了,不然要挂惨。

T4:被兔子骗了,一眼分块。和弹飞绵羊真的太像了。

考虑:记录 i 在块外的第一个节点 Fa[i],然后按照树剖 LCA 求两点 LCA 即可。同时维护小块 LCA fa[i]。

对于修改:整块维护修改次数,如果修改次数 >= sqrt n,那么一定会跳到块外,标记即可;否则直接暴力重构。

注意暴力重构后还要重新更新一遍 vis。

时间为 : \(n^{3/2}\)

T3 是个抽象题。

T12 的简单思维花的时间有点久,需要多练。不过好在 T2 最好想出来了,说明刷的 CF 还是有用的,实力尚在。


R4

rk9。202pts。

T1 求最短路边数,裸题。但是理解题目用了很久,需要增强阅读理解能力。

T2 错在 dp 的状态设计,其实认真想一想根本就不用记录上一个的具体值。相对关系定下来,i-2 和 i 没有任何关系。到这里就可以放心优化了。

这里对于重复的 change 处理是新 trick!

T3 神秘题,n3 居然没有 n4 快。我们应该看看 n2log的做法。to be updated……

T4 我的 dp 少打了一维(使得看就知道是错误的),不然结合特殊性质就是 55 分,直接进 rk5。主要是最后 5 分钟慌了,但是为什么要慌呢。稳住!


R5

rk16? 120pts。

思维场 & 数学场。

T1 对树形 dp 不够熟练啊。下面我们来逼一下自己一行一行地阐述代码。

void dfs(int x, int fa) {
	siz[x] = 1; dp[x][0] = dp[x][1] = 0;
  	// dp 初始化 给 0/1 表示只考虑这个数本身的
  	// 又由于到了父亲才能计数,所以暂时给 0,与 inf 区分
	val[x] = a[x];
	for(auto r : G[x]) {
		int to = r.first, V = r.second;
		if(to == fa) continue ;
		dfs(to, x); 
		for(int j = 0;j <= num; ++j) g[j] = inf;
   		// 当前的子树更新答案,为了防止错误,单独开一个数组记录
        // 主要是为了区分【子树内】和【子树外】的。
		for(int i = min(num, siz[x]);i >= 0; --i) 
			for(int j = 0;j <= min(siz[to], num) and i + j <= num; ++j) 
				g[i + j] = min(g[i + j], dp[x][i] + dp[to][j] + V * abs(val[to] - (j + sum * siz[to])));
        // 加的这一坨是当前子树所必须代价
		for(int j = 0;j <= num; ++j) dp[x][j] = g[j];
		siz[x] += siz[to]; val[x] += val[to];
	}
} 

T2 就是个 sb 思维,说明还需要多练。并且敢想。


标签:NOIP,int,T4,T2,T3,T1,模拟,初三,dp
From: https://www.cnblogs.com/Lovely-Cat/p/18172638

相关文章

  • 初三奥赛模拟测试5
    前言\(T1~100pts\):最开始没想出来,打了\(T3\)才去打。\(T2~0pts\):代码太难调没打出来。\(T3~0pts\):记忆化打假了,而且\(ans\)初始值忘记为\(0\),且捆绑测试……\(T4~0pts\):无人会。比赛链接。T1特殊字符串用\(f_i\)表示前\(i\)个字符中并以第\(......
  • 5月3日模拟赛题解(李时珍的皮肤衣 , 马大嘴的废话 , SSY的队列 , 清理牛棚 , 历史の研究)
    T1李时珍的皮肤衣发现是二进制进位,所以直接快速幂即可。#include<bits/stdc++.h>#defineint__int128inlineintread(){charch=getchar();intx=0,f=1;for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;for(;ch>='0'......
  • P1010 [NOIP1998 普及组] 幂次方
    题目:P1010[NOIP1998普及组]幂次方[NOIP1998普及组]幂次方题目描述任何一个正整数都可以用2的幂次方表示。例如137=27+23+2^0。同时约定次方用括号来表示,即a^b可表示为a(b)。由此可知,137可表示为2(7)+2(3)+2(0)进一步:$7=22+2+20(2^1用2表示),并且3=2+2^......
  • 初三奥赛模拟测试1
    初三奥赛模拟测试1T1回文暴力\(dp\)是\(n^4\)的。类似传纸条吧无用状态去了就是\(n^3\)的CODE#include<bits/stdc++.h>usingnamespacestd;usingllt=longlong;usingllf=longdouble;usingull=unsignedlonglong;#defineFor(i,a,b,c)for(inti=(a);i<=......
  • CSS & JS Effect – 用 wheel 模拟 scroll
    前言在用JavaScript实现positionsticky 文章中,我提到了用wheel来模拟scroll效果。这篇来说说具体怎么实现,挺简单的哦。 Preparationtable.html<divclass="container"><table><thead><tr><th>FirstName</th>&l......
  • 集训 4 & 模拟 5
    集训4&模拟5有点唐简单,所以一起写了(其实是因为之前懒得写)集训4:T1模拟,赛时不删调试保龄了。T2显然贪心T3发现显然要两两互质,有因为父比子小,所以方案数就是将\(\varphi\)乘起来(甚至都不需要线性筛)T4meetinmiddle板子。模拟5T1特殊字符串显然有\(n^2\)......
  • 【网络自动化运维】使用pythonping检查设备的连通性并记录可达设备(eNSP模拟器)
    实验拓扑:PC的IP地址和五台交换机的地址在同一网段,具体IP如图所示。现在保证直连网络能够通信,并且故意将SW5的接口shutdown掉,保证无法联通,作为对照的测试设备。在PC上运行python代码,测试与五台交换机的连通性。由于本次测试使用的是pythonping模块,这并不是python自带的模块,需要......
  • mumu模拟器 MuMuManager.exe是MuMu模拟器12新加入的工具
    前言全局说明MuMuManager.exe是MuMu模拟器12新加入的工具官方说明:https://mumu.163.com/help/20230504/35047_1086360.html一、说明MuMu模拟器12的调用程序MuMuManager.exe在模拟器的安装目录下可以找到,如“X:\ProgramFiles\Netease\MuMuPlayer-12.0\shell>MuMuManager......
  • P1525 [NOIP2010 提高组] 关押罪犯
    原题链接题解这题我采用了带权并查集的做法,0代表两囚犯处于监狱,1代表两囚犯不同监狱。根据题意,我们想让冲突值尽可能的小,那么我们要先把仇恨值大的两罪犯放在不同监狱;即按仇恨值从大到小的去判断每条仇恨信息。(贪心思想)code #include<bits/stdc++.h>usingnamespacestd;......
  • 纸牌游戏(超长大模拟)
    根据题意模拟即可,但这代码......CODE:#include<bits/stdc++.h>usingnamespacestd;inti[20]={0},t[20]={0},m[20]={0},ton[4][10]={0},z[10]={0},cmp[4][10]={0},zz[10][10]={0};intread(){ chara;intn;boolz=true; while(1) { a=getchar(); if(a>'9&#......