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】

STM32F407与AD7766实战:如何用SPI+DMA实现高速ADC数据采集(附完整代码) 本文详细介绍了如何利用STM32F407的SPI接口与DMA控制器,高效稳定地驱动24位高精度ADC芯片AD7766,实现高速连续数据采集。通过对比传统中断方式的瓶颈,阐述了SPI+DMA方案如何大幅降低CPU负载,并提供了从硬件设计、CubeMX配置到核心驱动代码的完整实战指南,帮助工程师解决高速ADC数据采集中的性能难题。 阅读详情

相关推荐

Qt图形视图框架实战:QGraphicsScene、QGraphicsView与QGraphicsItem的深度应用

本文深入解析Qt图形视图框架的核心组件QGraphicsScene、QGraphicsView与QGraphicsItem的实战应用。通过“舞台、镜头与演员”的比喻,清晰阐述了三者的协作关系,并详细介绍了场景管理、多视图同步、交互增强、自定义图形项绘制与性能优化等高级技巧,帮助开发者高效构建复杂的交互式图形界面。

weixin_29251337的博客 263

【NOIP模拟】 (10.23)

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

ETO的博客 401

PRIDE数据库20年:2025更新

PRoteomics IDEntifications (PRIDE)数据库(https://www.ebi.ac.uk/pride/)是全球领先的基于质谱(MS)的蛋白质组学数据存储库,也是ProteomeXchange联盟的创始成员之一。本文总结了过去3年中PRIDE资源及相关工具的发展情况。提交到PRIDE存档的数据集数量平均每月达到约534个。主要得益于基础设施的持续改进,如用于超大数据集的新文件传输协议(Globus)、新的数据重新提交流程以及自动数据集验证过程。

多组・学・多组学 2063

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

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

linweitong2020的博客 198

史上最全的Logisim运算器实验教程(基于华中科技大学计算机组成原理实验)

本博客是实现了Logisim的运算器设计,有具体的运算器设计的思路和运算器设计的电路,适合一步一步的按照思路做。

qq_62325622的博客 4万+

瑞芯微rk3568移植openbmc(一)----关于ob移植的优缺点

基于rock3a的单板,CPU为瑞芯微rk3568的环境,移植了openbmc

feixiang3839的专栏 5537

改题

先要做的事: 把集训队内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

基于Dify1.9知识库流水线模板的思考——图像和表格数据处理

本文探讨了Dify1.9知识库流水线中LLM节点对文档图像/表格增强处理的优化方案。针对当前仅在内容后追加说明的简单做法,提出了结构化标注的改进方法:通过唯一ID和注释块标记图像/表格及其描述,确保内容可精准对齐。文章详细阐述了该方案的解析处理流程、数据结构化表示方法,以及在RAG检索和文档还原中的具体应用。关键经验包括:必须结构化标注非文本内容、LLM增强的必要性、语义向量化处理等。该方案解决了原始方法在内容重排、相似元素区分和检索精度等方面的问题。

roseey的专栏 1437

NOIP模拟(10.23)T1 Fibonacci

暴力

scarlyw的博客 309

IMU标定中的Allen方差

Allen方差 Allen方差是IMU标定任务中的常用工具。IMU标定可以分为确定性误差和随机误差,确定性误差包括:scale、bias、misalignment。随机误差则主要是高斯白噪声和bias随机游走。Allen方差主要用于标定随机误差。 Allen方差获取 Allen方差的计算方法如下: 保持IMU静止, 采集N个数据点。 将N个点定长分组,常用的交叠式Allen方差如下(n=3): 对于每个子集,计算均值后,计算相邻两组的方差,得到的时间-方差曲线即为Allen方差。 Alle

realjc的博客 5734

Ceres&OpenCV 单目相机标定(论文复现)

Ceres&OpenCV 单目相机标定(论文复现)

dayuhaitang1的博客 370

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

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

qq_35169233的博客 614

fasterlio原理及代码框架梳理

Faster-LIO 的优势是在保持同等高精度的前提下,显著提升计算效率,以支持更极端的应用场景(如高速无人机)和更廉价的硬件平台。可以把 Faster-LIO 理解为用一把更快的“空间哈希筛子”(iVox)替换了原来精细的“动态平衡树”(ikd-Tree),从而在精度损失极小的情况下,实现了效率的显著提升。:只在实际有地图点的空间区域动态创建和保留体素单元,形成一个稀疏的体素地图。是关键:将去畸变点云中的每个点,在 iVox 维护的局部地图中搜索近邻(如5个最近点),构建点到面的距离残差。

Studying…… 246

NOIP模拟(10.23)T3 拆网线

DP + 贪心

scarlyw的博客 308

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【NOIP2018模拟10.23】 总结

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

ZJL_OIJR的博客 271

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

NOIP模拟(10.23)T2 一样远

LCA + 情况讨论

scarlyw的博客 346

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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、付费专栏及课程。

余额充值