noip模拟10.23

NOIP模拟总结10.23-11.1 10.23 今天考的比较差。。。 T1比较脑抽。完全没想到用数组来模拟,然后无脑上了个trie,发现没办法维护,然后打了个一个可持久化trie,还用bitset加速合并和拆分,结果复杂到爆炸。。。正解其实就是个模拟+组合数学题目。。 T2一开始觉得是最短路,用样例试了一下发现有点问题。。然后觉得是斜率优化,但是由于T1花的时间太多,导致我根本没有时间打,只是打了个50分草草收场。。 T3没有 阅读详情

【真是一次失败的经历呢蒟蒻又垫底了】

T1

【论蒟蒻是怎么拿100分的规律写70分的暴力期望得分90实际得分50的】

小结
  1. 代码的实现有问题。这道题没有对拍结果成功狗带。这次的策略本来没有毛病(就算打不出正解也可以得90分)
  2. 怎么把正解想出来【虽然没人指望我想出正解】。
    这属于上一个问题的进阶了。以这道题举例,我离想出正解还差哪些条件呢?
    宏观分析的毛病:没有考虑清楚就动笔。找出了规律却没有明确怎么用才好,因为时间不多了抱着写一点赚一点的心态开始敲键盘。
    细节就是:卡在了dep上,觉得不用dep没办法求公共祖先。经谢大佬点拨才知道就跳序号大的反正它们的公共祖先比它们的序号都小。不会出现跳越界的情况。
注意

最开始r的边界定小了导致无限循环

ll getfa(ll x)
{
    if(x==1) return 1;
    int l=0,r=60;
    while(l<r-1){
        int mid=(l+r)>>1;
        if(f[mid]<x) l=mid;
        else r=mid; 
    }
    //f[r-1]+1<=x<=f[r]
    return x-f[l];
}
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
const int N=1e6;
ll f[N+5],fa[N+5];
ll getfa(ll x)
{
    if(x==1) return 1;
    int l=0,r=60;
    while(l<r-1){
        int mid=(l+r)>>1;
        if(f[mid]<x) l=mid;
        else r=mid; 
    }
    //f[r-1]+1<=x<=f[r]
    return x-f[l];
}
ll lca(ll a,ll b)
{
    while(a!=b){
        if(a<b) swap(a,b);
        a=getfa(a);
    }
    return a;
}
int main()
{
    freopen("fibonacci.in","r",stdin);
    freopen("fibonacci.out","w",stdout);
    int m;
    scanf("%d",&m);
    f[1]=1,f[0]=1;
    for(int i=2;i<=60;i++)  f[i]=f[i-1]+f[i-2];
    for(int i=1;i<=m;i++){
        ll a,b;
        scanf("%I64d%I64d",&a,&b);
        printf("%I64d\n",lca(a,b));
    }
    return 0;
}

T2

【本题得分45,比暴力40多5分蒟蒻是不是该庆祝一下呢】

小结

回忆一下做这道题时的思路……大概是想一想线段树怎么做想不出来好吧开始疯狂数据分治。可惜数据分治最后的效果不大,看来还是时间复杂度没有分析清楚。
这道题的正解用到了一个关键的知识点【二分】,知道标答时感觉”啊竟然这么容易?“(可就是没想到)

注意

之后调题还是WA几次主要是二分边界的原因。

就是这里调了好久

while(l<r-1){
        mid=(l+r)>>1;
        //if(vec[c][mid]==pos) break;
        if(vec[c][mid]<pos) l=mid;
        else r=mid;
    }

总之这是一个及其不靠谱的语句,以后不要乱用

//if(vec[c][mid]==pos) break;
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;
const int N=3e5+2;
int a[N];
vector<int> vec[N];
int L(int x,int col)//找到大于等于x大的第一个下标 
{
    int l=-1,r=vec[col].size();
    while(l<r-1){
        int mid=(l+r)>>1;
        if(vec[col][mid]<x) l=mid;//(l,
        else r=mid;
    }
    return r;
}
int R(int pos,int col)
{
    int l=-1,r=vec[col].size();
    while(l<r-1){
        int mid=(l+r)>>1;
        if(vec[col][mid]<=pos) l=mid;   //[l,
        else r=mid;
    }
    return l;
}
void change(int c,int pos,int to)
{
    int l=-1,r=vec[c].size(),mid;
    while(l<r-1){
        mid=(l+r)>>1;
        //if(vec[c][mid]==pos) break;
        if(vec[c][mid]<pos) l=mid;
        else r=mid;
    }
    vec[c][r]=to;
}
int main()
{
    //freopen("color.in","r",stdin);
    //freopen("color.out","w",stdout);
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
        vec[a[i]].push_back(i);
    }
    int cnt=0;
    while(m--){
        int opt;
        scanf("%d",&opt);
        if(opt==1){
            ++cnt;
            int l,r,c;
            scanf("%d%d%d",&l,&r,&c);
            if(vec[c].size())
            printf("%d\n",R(r,c)-L(l,c)+1);
            else printf("0\n");
        }
        if(opt==2){
            int x;
            scanf("%d",&x); 
            change(a[x],x,x+1);
            change(a[x+1],x+1,x);
            swap(a[x],a[x+1]);
        }
    }
    return 0;
}

T3

小结

就不多评价在考场上对T3的表现了因为这道题爆零了,没调出来反而浪费了调T1的时间。
1、 前面的题调太久,做题的时候不够专注且没想好就动笔耽误了时间。
2、没有正确的预判,想了一个暴力就开始打,打完发现是错的。

解法

1。 K==1 还是比较好想的略
2。 K==2 用到了并查集,思想和NOI2013关押罪犯有点类似。分成两组建一个反集合。
【最后只得了84分调到了21:30蒟蒻我真的尽力了】

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int K,MAX,M,n;
int a[131072+5],s[131072+5];
int fa[131072*2+5], exi[131072+5];
int getfa(int x)
{
    return fa[x]==x?x:fa[x]=getfa(fa[x]);
}
void merge(int a,int b)
{
    int pa=getfa(a),pb=getfa(b);
    fa[pa]=pb;
}
bool check(int x)
{
    if(K==1){
        for(int i=sqrt(x);i*i<=MAX+x;i++)
        if(i*i>=x)
            if(exi[i*i-x]) return 0;
        return 1;
    }
    if(K==2){
        int thi=0;bool sam=0;
        for(int i=sqrt(x);i*i<=MAX+x;i++)
        if(i*i>=x)
        if(exi[i*i-x]) {
            thi++;
            if(i*i-x==x) {
                sam=1;continue;
            }
            merge(x,i*i-x+M);
            merge(x+M,i*i-x);
            if(getfa(i*i-x+M)==getfa(i*i-x)) return 0;
        }
        if((sam&&thi>1)||(sam&&exi[x]>=2))
            return 0;//出现了2*x=i*i且之前x出现过且还有另一数与x为敌 
        return 1;
    }
}
int main()
{
    freopen("division.in","r",stdin);
    freopen("division.out","w",stdout);
    scanf("%d%d",&n,&K);
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
        M=max(a[i],M);
    } 
    if(K==1){
        int tot=0;
        for(int i=n;i>=1;i--){
            if(!check(a[i])){
            //  printf("i:%d %d\n",i,a[i]);
                s[++tot]=i;
                MAX=0;
                memset(exi,0,sizeof(exi));
            } 
            //else 
            MAX=max(MAX,a[i]);
            exi[a[i]]++;
        }
        printf("%d\n",tot+1);
        for(int i=tot;i>=1;i--)
        printf("%d ",s[i]);
        printf("\n");
    }
    if(K==2){
        int tot=0;s[0]=n;
        for(int i=1;i<=2*M;i++) fa[i]=i;
        for(int i=n;i>=1;i--){
            if(!check(a[i])){//新分组 
                s[++tot]=i;
                MAX=0;
                memset(exi,0,sizeof(exi));
                for(int j=s[tot];j<=s[tot-1];j++){
                    fa[a[j]]=a[j];fa[a[j]+n]=a[j]+n;
                } 
            }
        //  else 
            MAX=max(MAX,a[i]);
            exi[a[i]]++;
        }
        printf("%d\n",tot+1);
        for(int i=tot;i>=1;i--)
        printf("%d ",s[i]);
        printf("\n");
    }
    return 0;
}

最后总结:
这次考试还是T1出的问题最大,如果T1过了T2的分数加起来也勉强可看。进步空间嘛就是希望可以更快一点【注意力再集中一点】,所以嘛,【验证代码】是很重要的。

其实今天因为这个还是挺丧的,有点怕明天再垫底【安慰自己*1】

手把手教你用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD) 本文详细介绍了如何使用Isograph Reliability Workbench 14.0绘制可靠性方框图(RBD),从软件安装、界面设置到基础项目创建和高级功能应用,手把手指导工程师完成系统可靠性分析。通过实际案例演示,帮助用户掌握RBD建模技巧,提升系统可靠性评估效率。 阅读详情

相关推荐

四款办公Agent实测对比:WorkBuddy、千问办公、库库AI、豆包工作怎么选

AI Agent是一种能感知环境、自主决策并执行动作的智能系统,其核心在于工具调用、状态管理与错误恢复构成的执行闭环。在办公场景中,任务边界清晰、容错率高、重复性强,使Agent成为最容易落地的方向。通过调用本地文件、脚本或办公套件,Agent能自动完成文件批量处理、文档摘要、会议纪要等重复劳动,显著提升工作效率。目前WorkBuddy、千问办公、库库AI、豆包工作等产品分别从本地操作、办公套件嵌入、知识处理、轻量助手等路线切入,用户可根据自身场景选择。

weixin_29052717的博客 522

【NOIP模拟】 (10.23)

T1 fibonacci 题目描述:        判读一个数是否为两个斐波拉契数的乘积。        Fibonacci 数的定义:F0=0,F1=1,Fk=Fk-1+Fk-2 。 输入格式 第一行一个整数 T 代表提问次数。 接下来 T 行,每行一个数字 A 表示询问的数。 输出格式 对于每次提问,如果这个数可以被分解成两个 Fibonacci 数的成绩输出“Y

ETO的博客 401

【大二组培训】2017年电子设计大赛H题总结(软件部分)

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt im

HAIBARA的博客 3022

2020.10.23【NOIP提高B组】模拟 总结

总结(结束之前) 第一题:原题,记得5年级考过。100? 第二题:背包+贪心?100? 第三题:dpdpdp?没打出来。用dpdpdp打了一个xi=0x_i=0xi​=0,应该25。 上天保佑我!!! 总结 第一题:满分。 第二题:才40分。应该是按性价比排序,改了就对了。 第三题:才5分。正解是连边跑最短路。 竟然145,第7。 ...

linweitong2020的博客 198

从入门到实战:openEuler 系统管理与运维笔记(持续更新)

本文为openEuler系统管理与运维的实战笔记,从CentOS迁移者视角切入,详细介绍了openEuler的生态兼容性、内核优化及安全特性。内容涵盖系统安装规划、虚拟机部署、基础命令操作、文件系统管理以及用户权限配置等核心运维技能,旨在帮助读者快速上手并掌握这一企业级操作系统的日常管理。

weixin_29207149的博客 222

Zotero内存占用与存储优化:从根源解决卡顿与空间不足

文献管理软件在学术工作中扮演着重要角色,其核心原理是通过数据库管理元数据与附件文件,实现文献的快速检索与组织。然而,随着文献库规模增长,软件的资源管理机制可能面临挑战,尤其是内存占用与存储空间优化问题。从技术价值看,高效的附件管理策略不仅能提升软件响应速度,还能确保数据安全与可移植性。在实际应用场景中,研究者常遇到软件卡顿、存储目录膨胀等痛点,这通常与附件存储模式、缓存机制及数据库维护有关。本文聚焦于Zotero这一主流工具,针对其内存占用高、文件无法删除等常见问题,提供了外置存储、链接附件、数据库维护等系

weixin_34209060的博客 464

改题

先要做的事: 把集训队内B组的题全部改完; 先要改的题:3813【NOIP2014模拟9.7】我要的幸福 3814【NOIP2014模拟9.7】天黑黑 3815【NOIP2014模拟9.7】克卜勒 * 3856【NOIP2014八校联考第3场第1试10.4】规避(path) * 1246 挑剔的美食家【难】 (平衡树,暂时不学,挖个坑,以后记住) 3888 【NOIP20

aloproking的博客 1250

Arch Linux双系统安装避坑指南:从Windows分区到桌面环境全流程

本文提供了一份详尽的Arch Linux与Windows双系统安装避坑指南。内容涵盖从安装前的UEFI环境确认、BitLocker处理、分区规划,到Live环境进入、基础系统安装、GRUB引导配置,再到显卡驱动安装、KDE/GNOME桌面环境部署及中文化设置的全流程。重点解决了双系统安装中的核心痛点,帮助用户在不破坏现有Windows系统的前提下,顺利完成Arch Linux的安装。

nice1的博客 535

NOIP模拟(10.23)T1 Fibonacci

暴力

scarlyw的博客 309

2026年美赛数学建模竞赛 MCM B题:使用太空电梯系统建立月球殖民地 问题一 月球殖民地材料运输的三种场景建模 详细解题思路和代码

如果运输系统不能完美工作(例如,系绳摆动、火箭失败、电梯故障等),你的解决方案在多大程度上会发生变化?技术可行性:三种方案在技术上都是可行的,但挑战不同 经济性:混合方案在长期视角下最具成本效益 时间效率:并行运输可以显著缩短总建设时间环境影响:太空电梯的环境优势明显,混合方案可平衡需求风险分散:混合方案提供了天然的风险分散机制

YOLO 617

YOLOv10改进,YOLOv10添加DICAM,用于水下图像增强模块,以提高朦胧水下图像的质量、对比度和色偏

在水下环境中,成像设备会出现水浑浊、光衰减、散射和颗粒问题,导致图像质量低、对比度差和彩色图像有偏差。这给使用传统视觉技术进行水下状态监测和检查带来了巨大挑战。近年来,水下图像增强因其在提高当前计算机视觉任务在水下目标检测和分割中的性能方面发挥着关键作用而受到越来越多的关注。由于主要从自然场景构建的现有方法在提高色彩丰富度和分布方面存在性能限制,作者提出了一种新颖的基于深度学习的方法,即 Deep Inception 和 Channel-wise Attention Modules (DICAM),以提高朦

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 480

16.10.4 C:3046. 【NOIP2012模拟10.23】游戏

Description游戏规则如下:给定两个正整数数列,一个游戏者通过若干次操作完成游戏。每一次操作,选择两个正整数k1和k2。将第一个数列的最后连续k1个数删除,它们的和记为S1;将第二个数列的最后连续K2个数删除,它们的和记为S2。这一次操作的得分就是(S1-K1)* (S2-K2 )。直到两个数列都清空了为止,所以不允许一个数列空了,而另一个数列中还有数。游戏的总得分就是每一次操作的得分总和。

qq_35169233的博客 614

PyTorch生成式人工智能(7)——生成对抗网络(Generative Adversarial Network, GAN)实践详解

生成对抗网络 (Generative Adversarial Network, GAN) 最早由 Ian Goodfellow 于 2014 年提出,其中生成器试图创建与真实样本无法区分的数据样本,而判别器则试图区分生成器生成的样本与真实样本。在本节中,我们将介绍 GAN 的理论基础。然后,介绍如何使用 PyTorch 从零开始构建 GAN,以便了解所有细节,深入理解 GAN 的内部工作原理,为后续讨论 GAN 的其他更高级内容奠定基础,比如生成高分辨率图像或逼真的音乐。

盼小辉丶的博客 1万+

NOIP模拟(10.23)T3 拆网线

DP + 贪心

scarlyw的博客 308

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【NOIP2018模拟10.23】 总结

做题策略的总结 这场比赛吸取了昨天的教训,上来直接把暴力打完了,忍住没去想正解。预估分数是120,但是由于我没有梦想,打了一个特判点却开的是暴力的数据范围,于是少了10分。还有打T3暴力的时候太颓废,没有打k=1的点,白白少了10分。 最终分数110,我还是太菜了。 T1 这是一道非常NOIP的差分。 数据范围能够启发人类智慧(@cyc): O(n2)O(n^2)O(n2)的做法比较简单,可以...

ZJL_OIJR的博客 271

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NOIP模拟(10.23)T2 一样远

LCA + 情况讨论

scarlyw的博客 346

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2014-10-23 NOIP模拟赛

NOIP2014模拟赛 -----lwher 时限均为1s,内存 256MB 1、Jams倒酒(pour) Jams是一家酒吧的老板,他的酒吧提供2种体积的啤酒,a ml 和 b ml,分别使用容积为a ml 和 b ml的酒杯来装载。 酒吧的生意并不好。Jams发现酒鬼们都很穷,不像他那么土豪。有时,他们会因为负担不起a ml 或者 b ml酒的消费,而不得不离去。因此,Jams...

weixin_30376453的博客 173

3046. 【NOIP2012模拟10.23】游戏

Description 游戏规则如下:给定两个正整数数列,一个游戏者通过若干次操作完成游戏。每一次操作,选择两个正整数k1和k2。将第一个数列的最后连续k1个数删除,它们的和记为S1;将第二个数列的最后连续K2个数删除,它们的和记为S2。这一次操作的得分就是(S1-K1)*(S2-K2)。直到两个数列都清空了为止,所以不允许一个数列空了,而另一个数列中还有数。游戏的总得分就是每一次操作的得分...

zsjzliziyang的博客 226

NOIP2013模拟10.23轮舞前夕

题目大意 给定一颗n节点树,问:在选择最少点情况下,使得树上所有点都与这些点中至少一个有边连接(除了选中的点)的方案数以及选择点数这题,我们可以考虑用树形dp做,一个点的状态,0为没被选定且儿子节点都没被选定,1为没被选定且儿子节点至少一个被选定,2为被选定。那么我们可以发现,当状态为2时,子节点任意状态都可以,保留选的点数最少的(同一儿子,多个方案就求和,不同儿子用乘法)当状态为0时,儿子必然是

OIerEmeng 750

NOIP2013模拟10.23囚人的旋律

题目大意给定一个逆序图,表示若a[i]>a[j](i<j)那么i向j连一条边(这里是给定边数),问有多少个选点方案,是的选定的点之间没有连边,没选定的点与选定的点中至少一个点有连边。由于逆序图能对应一个序列,那么我们将对应的图转成序列:(题目保证:存在至少一个序列 ,按照题目描述中所述方法得到的逆序图是给定的图。)直接处理出每个位置有多少个数a[i],在其后面又比它小(根据边的关系)。 然后从左到

OIerEmeng 588

【NOIP2012模拟10.23】游戏

Description 游戏规则如下:给定两个正整数数列,一个游戏者通过若干次操作完成游戏。每一次操作,选择两个正整数k1和k2。将第一个数列的最后连续k1个数删除,它们的和记为S1;将第二个数列的最后连续K2个数删除,它们的和记为S2。这一次操作的得分就是(S1-K1)* (S2-K2 )。直到两个数列都清空了为止,所以不允许一个数列空了,而另一个数列中还有数。游戏的总得分就是每一次操作的得分总...

Beautiful women in tights 454

jzoj3046. 【NOIP2012模拟10.23】游戏

jzoj3046. 【NOIP2012模拟10.23】游戏题目DescriptionInputOutputSample InputSample OutputHint分析CODE 题目 Description 游戏规则如下:给定两个正整数数列,一个游戏者通过若干次操作完成游戏。每一次操作,选择两个正整数k1和k2。将第一个数列的最后连续k1个数删除,它们的和记为S1;将第二个数列的最后连续K2个数删...

SSL_Yyx的博客 468

Noip 模拟 6 2018/10/23

T1:浮躁 (fickle) 阿杰在上班会数学课:“最近有些同学很浮躁……” 早已习惯的你,在想这样一个问题: 共有 $ n$ 种竞赛,对于其中任意 i 种竞赛 (1≤i≤n)(1≤i≤n)(1≤i≤n),有 aiaiai 个人同时参加,问有多少个人参加了至少一门竞赛? 阿杰还在滔滔不绝,你却陷入了深思。 第一眼看上去,嗯,简单题,乱搞就好 等一下,没有取模 发现高精会TLE,然后就不会了 正解:...

chm_wt的博客 191

10.23 noip模拟试题

尼玛蛋pdf好难粘 直接写了 T1 /*开始写wa了 我真弱2333 关于p的排序规则不只是差值 为了字典序最小 还要拍别的*/ #include<cstdio> #include<algorithm> #define maxn 100010 #define inf 1e7 #define mem(a,b) for(int i=0;i<=n;i++...

weixin_30634661的博客 136

10.23NOIP模拟题

叉叉题目描述现在有一个字符串,每个字母出现的次数均为偶数。接下来我们把第一次出现的字母 a 和第二次出现的 a 连一条线,第三次出现的和四次出现的字母 a 连一条线,第五次出现的和六次出现的字母 a 连一条线...对其他 25 个字母也做同样的操作。现在我们想知道有多少对连线交叉。交叉的定义为一个连线的端点在另外一个连线的内部,另外一个端点在外部。下图是一个例子,共有三对连线交叉(我们连线的时候,...

weixin_30456039的博客 173

10.23~10.24NOIP模拟测试总结

一次逼真的模拟考试,总分100+212=312,预计省一的分数线是280左右。 先说一下概况:第一天爆炸,第二天比较理想。所以加起来的分数还看得过去,但是还是很不理想。 第一天炸了哪些:第一题找到正解的思路,但是因为种种原因比如错误地低估了算法的正确性以及高估了评测机的速度,TLE了两个点。第二题也是知道了怎么做(vector+二分),但是由于对STL的lower_bound以及迭代器

KGV093的博客 437
上一篇: bzoj1485 catalan数+特殊的求组合数方法
下一篇: noip模拟10.24
五彩蒟蒻DDD
博客等级 码龄10年 20粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值