2023年多校联训NOIP层测试2
2023年多校联训NOIP层测试2
爆零了
T1 HDU 4786 Fibonacci Tree \(0pts\)
@wangyunbiao: 不可以,总司令
我:不,可以,总司令
@wangyunbiao: 我 \(T1\) 爆零了
我: 我 \(T1\) 也爆零了
- 赛场上初读题面,以为是毒瘤数据结构(被题面背景祸害),然后直接就跳了(祭)。
- 易知,令在题目中所给的图的最大生成树的边权之和为 \(maxx\) ,最小生成树的边权之和为 \(minn\) ,那么在 \(minn\) ~ \(maxx\) 之间存在一个数是斐波那契数,则存在一种构造方式使得构造出一棵斐波那契树(因为原图的边权只有 \(0\) 和 \(1\))。
- 预处理 \(Fibonacci\) ,再跑最小生成树和最大生成树即可(我跑的是 \(Kruskal\) )。
- 本题常数有点大,请使用 \(scanf,printf\) 或关闭 \(cin,cout\) 同步流 。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define sort stable_sort
#define endl '\n'
struct node
{
int u,v,w;
}e[300000];
int f1[300000],f2[300000],fib[300000],vis[300000],cnt,minn,maxx;
void add(int u,int v,int w)
{
cnt++;
e[cnt].u=u;
e[cnt].v=v;
e[cnt].w=w;
}
bool cmp(node a,node b)
{
return a.w<b.w;
}
int find(int x,int f[])
{
if(f[x]==x)
{
return f[x];
}
else
{
return f[x]=find(f[x],f);
}
}
void kruskal(int n)
{
int numin=0,numax=0,i,j,x,y;
sort(e+1,e+cnt+1,cmp);
for(i=1,j=cnt;i<=cnt,j>=1;i++,j--)
{
x=find(e[i].u,f1);
y=find(e[i].v,f1);
if(x!=y)
{
f1[x]=y;
minn+=e[i].w;
numin++;//最小生成树
if(numin>=n)
{
minn=0;
return;
}
}
x=find(e[j].u,f2);
y=find(e[j].v,f2);
if(x!=y)
{
f2[x]=y;
maxx+=e[j].w;
numax++;//最大生成树
if(numax>=n)
{
maxx=0;
return;
}
}
}
if(numin!=n-1)
{
minn=0;
}
if(numax!=n-1)
{
maxx=0;
}
}
int main()
{
int t,n,m,u,v,w,i,j,flag;
scanf("%d",&t);
fib[1]=fib[2]=1;
vis[1]=1;
for(i=3;fib[i-1]<=100010;i++)
{
fib[i]=fib[i-1]+fib[i-2];
vis[fib[i]]=1;
}
for(i=1;i<=t;i++)
{
scanf("%d%d",&n,&m);
cnt=minn=maxx=flag=0;
for(j=1;j<=n;j++)
{
f1[j]=f2[j]=j;
}
for(j=1;j<=m;j++)
{
scanf("%d%d%d",&u,&v,&w);
add(u,v,w);
add(v,u,w);
}
kruskal(n);
if(minn!=0&&maxx!=0)
{
for(j=minn;j<=maxx;j++)
{
if(vis[j]==1)
{
//printf("Case #%d: ",i);
//printf("Yes\n");
printf("YES\n");
flag=1;
break;
}
}
if(flag==0)
{
//printf("Case #%d: ",i);
//printf("No\n");
printf("NO\n");
}
}
else
{
//printf("Case #%d: ",i);
//printf("No\n");
printf("NO\n");
}
}
return 0;
}
- 貌似改输出格式后 \(HDU\) 上 \(WA\) 了,有知道原因的@我。
T2 期末考试 \(0pts\)

- 题面中没有明确表明必定有解,但测试数据表明必定有解。
- 部分分(赛场上没骗到,祭):
- \(n\) 份答案对应分数都为 \(0\) ( \(10\)pts ):
- 设 \(n\) 份答案中第 \(i\) 位共出现了 \(sum[i]\) 种字符,则有:$$ans=\prod\limits_{i=1}^{10}(4-sum[i])$$
- \(n\) 份答案对应分数都为 \(90\) ( \(10\)pts ):
- 设 \(n\) 份答案共中有 \(x\) 份本质不同,则有:
\[ans =
\left \{
\begin{aligned}
&10×C_1^3=10×\frac{3!}{{2}!×1!}=10×3=30 && (x = 1) \\
&C_2^1=\frac{2!}{{1}!×1!}=2 && (x = 2,且两份代码仅有1处答案不同) \\
&1+1=2 && (x = 2,且两份代码仅有2处答案不同,但必定有解) \\
&1 && \text{(otherwise)}
\end{aligned}
\right.
\]
- 设 \(n\) 份答案共中有 \(x\) 份本质不同,则有:
- \(n\) 份答案对应分数都为 \(0\) ( \(10\)pts ):
- 直接爆搜,貌似数据有点差,放过去了 \(O(n×4^n)\)
- 设 \(ans[]\) 临时存储一个答案,检验这个答案的正确性。如果符合题意,则答案总数 \(++\) 。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define sort stable_sort
#define endl '\n'
char s[30000][10],ans[10];//慎用string,不开O2可能会祭
int a[30000],maxx;
void dfs(int x,int n)
{
int i,j,num;
if(x==10)//检验临时答案是否正确
{
for(i=1;i<=n;i++)
{
num=0;
for(j=0;j<=9;j++)
{
if(ans[j]==s[i][j])
{
num+=10;
}
}
if(num!=a[i])//说明答案不合法
{
return;
}
}
maxx++;
}
else
{
for(i=1;i<=4;i++)//爆搜临时答案
{
ans[x]='A'+i-1;
dfs(x+1,n);
}
}
}
int main()
{
int t,n,i,j;
cin>>t;
for(i=1;i<=t;i++)
{
cin>>n;
maxx=0;
for(j=1;j<=n;j++)
{
cin>>s[j]>>a[j];
}
dfs(0,n);
cout<<maxx<<endl;
}
return 0;
}
- 正解貌似是 \(meet \ in \ the \ middle\) ,但没听懂,暂时咕了。
T3 麻烦的工作 \(0pts\)

@wangyunbiao: 不可以,总司令
我:不,可以,总司令
@wangyunbiao: 我 \(T3\) 爆零了
我: 我 \(T3\) 也爆零了
- 没听懂讲评,暂时咕了。
- 可参考wkh的。
T4 小X的Galgame \(0pts\)

- 部分分( \(20pts\) ):输出所有边权之和。
- 没听懂讲评,暂时咕了。
2023年多校联训NOIP层测试2的更多相关文章
- Contest1893 - 2019年6月多校联训b层测试1
传送门 密码:waxadyt T1 暴力 对于任意相邻的两个值 中间能到达的最大高度是固定的 加上头尾,判一下就好了 代码//感谢Th Au K #include<bits/stdc++.h&g ...
- 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)
2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...
- 「题解」NOIP模拟测试题解乱写II(36)
毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...
- 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组
2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...
- 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色
2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...
- NOIP模拟测试17&18
NOIP模拟测试17&18 17-T1 给定一个序列,选取其中一个闭区间,使得其中每个元素可以在重新排列后成为一个等比数列的子序列,问区间最长是? 特判比值为1的情况,预处理比值2~1000的 ...
- 三校联训 【NOIP模拟】寻找
题面 “我有个愿望,我希望穿越一切找到你.” 这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y ...
- [考试反思]0714/0716,NOIP模拟测试3/4
这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...
- [k8s]nginx-ingress配置4/7层测试
基本原理 default-backend提供了2个功能: 1. 404报错页面 2. healthz页面 # Any image is permissable as long as: # 1. It ...
- 2019.8.3 NOIP模拟测试12 反思总结【P3938 斐波那契,P3939 数颜色,P3940 分组】
[题解在下面] 早上5:50,Gekoo同学来到机房并表态:“打暴力,打暴力就对了,打出来我就赢了.” 我:深以为然. (这是个伏笔) 据说hzoi的人还差两次考试[现在是一次了]就要重新分配机房,不 ...
随机推荐
- PMP项目变更管理及变更流程总结
转载请注明出处: 1. 变更管理流程 2.变更管理流程十步: 0 预防--1发起变更请求--2分析影响--3备选方案--4CCB批准--5更新项目管理计划--6沟通干系人--7执行--8检查--9总结 ...
- Prime Time-02
Timing Constrain clk3和clk4 - 异步 clk2和clk1 - 同步 有四个clk,所以要设置四个clk的周期 latency - Net delay,走线的延时 uncert ...
- WebApi使用Swagger
services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API ...
- [转帖]集群监控之 —— ipmi操作指南
https://www.cnblogs.com/gaoyuechen/p/8506930.html 这两天,配置了一堆500来个节点的大型集群,被ipmi的问题困扰了一天半,到下午16:40,终于解决 ...
- [转帖]Redis中的Lua脚本
最近琢磨分布式锁时接触到的知识点,简单记一下. 文章目录 1. Redis中的Lua 2. 利用Lua操作Redis 3. Lua脚本的原子性 4. 关于 EVALSHA 5. 常用`SCRIPT` ...
- [转帖]Linux设备与内存单位-扇区、块、段、页(sector、block、segment、page)
每个概念是对不同的对象而言的,但它们有一定的联系 这些概念的分析背景是Linux下的内存页和磁盘结构 扇区 是硬盘等存储设备传送单位,大小一般为512B 块 是VFS和文件系统的传送单位(所以相关设备 ...
- 【K哥爬虫普法】一个人、一年半、挣了2000万!
我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识, ...
- MySQL存储过程、索引、分表对比
MySQL存储过程.索引和分表是用于提高查询效率的三种不同方法,它们各自对查询效率有不同的影响和应用场景.以下是它们的对比: MySQL存储过程: 影响查询效率: 存储过程通常不直接影响查询效率,因为 ...
- 开源IM项目OpenIM新版本发布-生产环境需更新
项目简介 Android体验地址:https://www.pgyer.com/OpenIM 注册后自动加入组织,和群聊 群聊页面 工作台 工作台,业务可以通过jssdk自由扩展自身业务 工作圈 工作圈 ...
- NET Core 通过扩展方法实现密码字符串加密(Sha256和Sha512)
using System; using System.Security.Cryptography; using System.Text; namespace SPACore.Extensions { ...