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.
        \]
  • 直接爆搜,貌似数据有点差,放过去了 \(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的更多相关文章

  1. Contest1893 - 2019年6月多校联训b层测试1

    传送门 密码:waxadyt T1 暴力 对于任意相邻的两个值 中间能到达的最大高度是固定的 加上头尾,判一下就好了 代码//感谢Th Au K #include<bits/stdc++.h&g ...

  2. 2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci)

    2019.8.3 [HZOI]NOIP模拟测试12 A. 斐波那契(fibonacci) 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 找规律 找两个节点的lca,需 ...

  3. 「题解」NOIP模拟测试题解乱写II(36)

    毕竟考得太频繁了于是不可能每次考试都写题解.(我解释个什么劲啊又没有人看) 甚至有的题目都没有改掉.跑过来写题解一方面是总结,另一方面也是放松了. NOIP模拟测试36 T1字符 这题我完全懵逼了.就 ...

  4. 2019.8.3 [HZOI]NOIP模拟测试12 C. 分组

    2019.8.3 [HZOI]NOIP模拟测试12 C. 分组 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 刚看这题觉得很难,于是数据点分治 k只有1和2两种,分别 ...

  5. 2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色

    2019.8.3 [HZOI]NOIP模拟测试12 B. 数颜色 全场比赛题解:https://pan.baidu.com/s/1eSAMuXk 数据结构学傻的做法: 对每种颜色开动态开点线段树直接维 ...

  6. NOIP模拟测试17&18

    NOIP模拟测试17&18 17-T1 给定一个序列,选取其中一个闭区间,使得其中每个元素可以在重新排列后成为一个等比数列的子序列,问区间最长是? 特判比值为1的情况,预处理比值2~1000的 ...

  7. 三校联训 【NOIP模拟】寻找

    题面 “我有个愿望,我希望穿越一切找到你.” 这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y ...

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

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

  9. [k8s]nginx-ingress配置4/7层测试

    基本原理 default-backend提供了2个功能: 1. 404报错页面 2. healthz页面 # Any image is permissable as long as: # 1. It ...

  10. 2019.8.3 NOIP模拟测试12 反思总结【P3938 斐波那契,P3939 数颜色,P3940 分组】

    [题解在下面] 早上5:50,Gekoo同学来到机房并表态:“打暴力,打暴力就对了,打出来我就赢了.” 我:深以为然. (这是个伏笔) 据说hzoi的人还差两次考试[现在是一次了]就要重新分配机房,不 ...

随机推荐

  1. 2023第十四届极客大挑战 — RE WP

    RE方向出自:队友. Shiftjmp 去花后按p然后再反编译 最后flag为SYC{W3lc0me_tO_th3_r3veR5e_w0r1d~} 点击就送的逆向题 gcc 1.s -o 1` 生成e ...

  2. html - 多次点击选中页面文字出现蓝色背景的解决方法

    body{ -moz-user-select: none; /*火狐*/ -webkit-user-select: none; /*webkit浏览器*/ -ms-user-select: none; ...

  3. Go——语言特性

    golang 简介 来历 很久以前,有一个IT公司,这公司有个传统,允许员工拥有20%自由时间来开发实验性项目.在2007的某一天,公司的几个大牛,正在用c++开发一些比较繁琐但是核心的工作,主要包括 ...

  4. [转帖]【linux命令学习】— sar 命令学习

    https://blog.csdn.net/u013332124/article/details/101075521 一.命令使用介绍 sar命令全称 System Activity Report,它 ...

  5. [转帖]@Scope("prototype")的正确用法——解决Bean的多例问题

    https://www.jianshu.com/p/54b0711a8ec8 1. 问题,Spring管理的某个Bean需要使用多例   在使用了Spring的web工程中,除非特殊情况,我们都会选择 ...

  6. [转帖]一文看懂Linux内核页缓存(Page Cache)

    https://kernel.0voice.com/forum.php?mod=viewthread&tid=629   玩转Linux内核 发布于 2022-8-9 22:19:08 阅读  ...

  7. 关于sar的学习

    关于sar的学习 背景 公司一套基于某冷门Python架构的系统前几天出现异常卡顿. 当时安装的时候必须使用ubuntu系统. 所以当时默认安装的ubuntu1804, 本来想尝试使用一下sar查看卡 ...

  8. [转帖]关于Linux操作系统中LUN的队列深度(queue_depth)

    Linux中的queue_depth(队列深度),可以用lsscsi查看. 不过今天在我的vm 虚拟机环境中(无外界存储),是没有lsscsi命令. 不过,从网上,搜到了如下的信息: $ lsscsi ...

  9. 【转帖】ChatGPT的前身:InstructGPT

    https://www.jianshu.com/p/6daf35cbc46a ChatGPT的论文目前还没有发布,在其官方博客(https://openai.com/blog/chatgpt/)中对方 ...

  10. [转帖]Elasticsearch-索引性能调优

    1:设置合理的索引分片数和副本数 索引分片数建议设置为集群节点的整数倍,初始数据导入时副本数设置为 0,生产环境副本数建议设置为 1(设置 1 个副本,集群任意 1 个节点宕机数据不会丢失:设置更多副 ...