NOIP2024(欢乐)加赛3

NOIP2024(欢乐)加赛3

\(T1\) CF2033B Sakurako and Water \(100pts\)

  • 枚举主对角线取 \(\max\) 即可。

    点击查看代码
    ll a[510][510];
    int main()
    {ll t,n,ans=0,maxx,i,j,k,h;cin>>t;for(h=1;h<=t;h++){cin>>n;ans=0;for(i=1;i<=n;i++){for(j=1;j<=n;j++){cin>>a[i][j];}}for(k=-n+1;k<=n+1;k++){maxx=0;for(i=1,j=i+k;i<=n;i++,j++){if(i<=n&&1<=j&&j<=n&&a[i][j]<0){maxx=max(maxx,-a[i][j]);}}ans+=maxx;}cout<<ans<<endl;}return 0;
    }
    

\(T2\) CF2025B Binomial Coefficients, Kind Of \(100pts\)

  • 观察样例加打表可知, \(2^{[k \ne n] \times k}\) 即为所求。

    • 已知递推式 \(f_{i,j}=\begin{cases} 1 & j=0 \lor j=n \\ f_{n,k-1}+f_{n-1,k-1} & j \in [1,n) \end{cases}\) ,省去 \(j=n\) 的状态后有 \(f_{i,j}=f_{i+1,j}\)
    • \(f_{i,j}\) 能更新到的值只有 \(\begin{cases} f_{i,j+1}=f_{i+1,j+1}=2f_{i,j} \end{cases}\) ,故 \(2^{[k \ne n] \times k}\) 即为所求。
    点击查看代码
    const ll p=1000000007;
    ll n[100010],m[100010],C[1010][1010];
    ll qpow(ll a,ll b,ll p)
    {ll ans=1;while(b){if(b&1){ans=ans*a%p;}b>>=1;a=a*a%p;}return ans;
    }
    int main()
    {ll t,i;cin>>t;for(i=1;i<=t;i++){cin>>n[i];}for(i=1;i<=t;i++){cin>>m[i];if(m[i]==n[i]){cout<<1<<endl;}else{cout<<qpow(2,m[i],p)<<endl;}}return 0;
    }
    

\(T3\) CF2030D QED's Favorite Permutation \(100pts\)

  • 对于移动,我们可以无脑进行交换来保证移动,然后将中途交换的位置再交换回去。

  • 通过手摸不难发现, \(p_{i}\) 能移动到 \(i\) 当且仅当 \(s_{\min(i,p_{i}) \sim \max(i,p_{i})}\) 中不含有 LR 子串。

  • 反向考虑,即 LR 子串不被上述区间包含,差分判断即可。

    点击查看代码
    ll a[200010],d[200010];
    char s[200010];
    int main()
    {ll t,n,m,x,sum,i,j; cin>>t;for(j=1;j<=t;j++){cin>>n>>m;sum=0;for(i=1;i<=n;i++){cin>>a[i];d[min(a[i],i)]++;d[max(a[i],i)]--;}for(i=1;i<=n;i++){d[i]+=d[i-1];}cin>>(s+1);for(i=1;i<=n-1;i++){if(s[i]=='L'&&s[i+1]=='R'){sum+=(d[i]!=0);}}for(i=1;i<=m;i++){cin>>x;if(s[x]=='L'){s[x]='R';if(x+1<=n&&s[x+1]=='R'){sum-=(d[x]!=0);}if(x-1>=1&&s[x-1]=='L'){sum+=(d[x-1]!=0);}}else{s[x]='L';if(x+1<=n&&s[x+1]=='R'){sum+=(d[x]!=0);}if(x-1>=1&&s[x-1]=='L'){sum-=(d[x-1]!=0);}}if(sum!=0){cout<<"No"<<endl;}else{cout<<"Yes"<<endl;}}for(i=1;i<=n;i++){d[i]=0;}}return 0;
    }
    

\(T4\) CF2025E Card Game \(10pts\)

  • 部分分
    • \(10pts\) :输出样例。

\(T5\) CF1967D Long Way to be Non-decreasing \(16pts\)

  • 部分分

    • \(16pts\)
      • 考虑从 \(i\)\(b_{i}\) 连一条有向边,那么 \(i\) 能到达的点就是经过若干次操作后可以成为的值。
      • 答案上界显然为 \(m\) ,考虑二分答案。
      • \(check\) 时选令 \(a_{i}\) 走到 \(mid\) 步能到达的范围内不小于 \(a_{i-1}'\) 的数 \(a_{i}\) ,主席树空间开不下遂写了暴力。
    点击查看代码
    int a[1000010],b[1000010],vis[1000010],tot=0;
    vector<int>e[1000010],s[1000010];
    void dfs(int x,int rt)
    {s[rt].push_back(x);vis[x]=tot;for(int i=0;i<e[x].size();i++){if(vis[e[x][i]]!=tot){dfs(e[x][i],rt);}}
    }
    bool check(int mid,int n,int m)
    {int last=0,minn;for(int i=1;i<=n;i++){minn=0x7f7f7f7f;for(int j=0;j<s[a[i]].size()&&j<=mid;j++){if(s[a[i]][j]>=last){minn=min(minn,s[a[i]][j]);}}last=minn;if(last==0x7f7f7f7f){return false;}}return true;
    }
    int main()
    {int testcase,n,m,l,r,mid,ans,i,j;scanf("%d",&testcase);for(j=1;j<=testcase;j++){scanf("%d%d",&n,&m);for(i=1;i<=m;i++){e[i].clear();s[i].clear();vis[i]=0;}for(i=1;i<=n;i++){cin>>a[i];}for(i=1;i<=m;i++){cin>>b[i];e[i].push_back(b[i]);}for(i=1;i<=m;i++){tot++;dfs(i,i);}l=0;r=m;ans=-1;while(l<=r){mid=(l+r)/2;if(check(mid,n,m)==true){ans=mid;r=mid-1;}else{l=mid+1;}}printf("%d\n",ans);}return 0;
    }
    
  • 正解

\(T6\) CF2023D Many Games \(9pts\)

  • 部分分

    • \(7pts\) :爆搜。
    • \(9pts\) :背包。
    点击查看代码

总结

  • \(T4\) 的部分分没来得及写。
  • \(T5\) 以为最终连成的一个环,破环为链后分前后缀考虑,然后就口胡了个假的势能线段树维护在线二维数点。基本全场都在写 \(T5\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/830808.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20222402 2024-2025-1《网络与系统攻防技术》实验四实验报告

一、实验内容 本周学习内容 计算机病毒(Virus):通过感染文件(可执行文件、数据文件、电子邮件等)或磁盘引导扇区进行传播,一般需要宿主程序被执行或人为交互才能运行 蠕虫(Worm):一般为不需要宿主的单独文件,通过网络传播,自动复制通常无需人为交互便可感染传播 恶意移动代码…

GeoHash处理经纬度,降维,空间填充曲线

个人博客:无奈何杨(wnhyang) 个人语雀:wnhyang 共享语雀:在线知识共享 Github:wnhyang - Overview参考 https://segmentfault.com/a/1190000042971576 GeoHash原理以及代码实现_geohash编码-CSDN博客 GeoHash代码实现--java_geohash java代码示例-CSDN博客 在线经纬度距离…

windows环境下cmd窗口打开就进入到对应目录,一般人都不知道~

前言 很久以前,我还在上一家公司的时候,有一次我看到我同事打开cmd窗口的方式,瞬间把我惊呆了。原来他打开cmd窗口的方式,不是一般的在开始里面输入cmd,然后打开cmd窗口。而是另外一种方式。 我这个同事是个技术控,喜欢研究新的技术,研究一些提高效率的小窍门。这一方面…

黑马PM- B端产品-客户管理

客户管理公海管理商机管理

C盘满了,C盘无损扩容,简单实现

C盘爆满原因很多,无外乎当年固态硬盘贵,C盘分区过小,或者装系统时无意把分区分的太小,这就造成了一个困扰,C盘满了,变成红色,造成软件无法运行,电脑无法启动。如果重新分区,电脑上的资料就没了,所以今天就来介绍一款不用重装系统,扩充C盘容量的方法,操作非常简单,…

SchedulingConfigurer 实现定时任务(动态修改cron,解决@Scheduled需重启服务问题)

通过实现Sc接口,实现定时任务,解决@Scheduled的定时任务改动cron需要服务重启的问题。@Slf4j @Component public class ATestScheduleJob implements SchedulingConfigurer {@Value("${a.c:0/5 * * * * ?}")private String cron1;@Overridepublic void configureT…

20222319 2024-2025-1 《网络与系统攻防技术》实验四实验报告

1.实验要求 1.1 实验内容 一、恶意代码文件类型标识、脱壳与字符串提取 对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下: (1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具…

黑马PM- B端产品- CRM产品概述

CRM的定义CRM的核心要素CRM的设计思路

推荐模型梳理

Summary 目录Summary标准序列推荐模型其他推荐模型FPMCDNN(Pooling)GRU4Rec(RNN-based)GRU4Rec+(RNN-based)Caser(CNN-based)SASRec(Transformer-based)DIN(Transformer-based)BERT4Rec(Transformer-based)TiSASRec(Transformer-based)FMLP-Rec(Transformer-b…

程序是怎样跑起来的

总结自书籍:https://weread.qq.com/web/reader/94332ce0813ab7cc8g016ad1#outline?noScroll=1计算机的组成:运算器、控制器、存储器、输入设备、输出设备计算机内部都是由集成电路构成的,CPU和内存本质上都是集成电路,集成电路是由大量晶体管构成的电子部件集成电路的所有…

『模拟赛』NOIP2024(欢乐)加赛3(更新 T4 T5 T6)

『模拟赛记录』NOIP2024(欢乐)加赛3Rank 真欢乐吗, 不过 mission accomplished.A. Sakurako and Water CF2033B *900 byd 还懂难易搭配,不过这个 b 翻译甚至不着重以下主对角线差评,被硬控半个小时,直到手模样例才发觉不对。 读懂题就很简单了,最优一定是找最长的对角线…