2021CSP-J题解整合
放在一切的前面:
其实,这次我打的不是太好······
最后打了270多分······
分数和排名···
其实,我们弱省这就是一等奖了,全国不高。
话说我只AC一道题就很离谱······
【题解】P7909 [CSP-J 2021] 分糖果
题意:
给定n,L,Rn,L,Rn,L,R,选取一个正整数 k(L≤k≤R)k(L \le k \le R)k(L≤k≤R) ,使 kmodnk\bmod nkmodn 的值ansansans最大,输出这个 ansansans .
思路:
根据取余运算的定义,我们可以得到如下结论:
ans≤n−1ans \le n-1ans≤n−1
也就说,我们要使ansansans尽可能地接近n−1n-1n−1,有如下两种情况:
- 能找到一个 kmodn=n−1k \bmod n = n-1kmodn=n−1 ,那么我们就输出n−1n-1n−1;
- 不能找到 kmodn=n−1k \bmod n = n-1kmodn=n−1 ,那么我们就输出最接近n−1n-1n−1的值。
做法:
我们求一个 zzz.
令 z=Lmodnz=L \bmod nz=Lmodn .
那么,在 kmodn=n−1k \bmod n = n-1kmodn=n−1 中, k=n−1−z+Lk=n-1-z+Lk=n−1−z+L ;
我们只需要判定这个数字有没有超过 RRR 就可以:
- k≤Rk \le Rk≤R ,直接输出kkk即可。
- k>Rk > Rk>R ,可得知 RmodnR \bmod nRmodn 不会变得更小,所以最大值是 RmodnR \bmod nRmodn.
代码:
#include<bits/stdc++.h>
using namespace std;
long long n,l,r,z;
int main(){scanf("%lld%lld%lld",&n,&l,&r);z=l%n;if(n-1-z+l<=r) printf("%lld",n-1);else printf("%lld",r%n);return 0;
}
【题解】P7910 [CSP-J 2021] 插入排序
这道题,典型的模拟优化:
我们尽可能在修改时进行计算
博客园的简单记叙
我们先用sortsortsort进行第一次,也是唯一一次查询,为了不改变原有数组的位置,我们用两个数组。
处理时,我们应该逐个比较,根据我们的需要来进行数位的动态维护。
我们在第二类就可以直接输出。
代码在博客园里。
【题解】P7911 [CSP-J 2021] 网络连接
这道题典型的模拟;
模拟这个东西,其实很简单。
A+B问题就是最简单的模拟。
我们只要按照题意判定,然后就能得出AC代码。
易错点:
- 前导零没有判断:
建议在判断字符时直接判断。 - 没有判断两个符号连接在一起的情况:
建议判断是否有数字出现。 - 数字难以处理:
建议用数字记录:sum=sum*10+a[i]-'0';
- 没有足够的符号:
建议记录出现多少符号。
AC代码:
#include<bits/stdc++.h>
using namespace std;
map<string,bool> pd1;
map<string,int> pd2;
long long n;
struct computr{string s1,s2;long long id;
}a[1001];
int main(){// freopen("network.in","r",stdin);
// freopen("network.out","w",stdout);scanf("%lld",&n);for(long long i=1;i<=n;i++){cin>>a[i].s1>>a[i].s2;a[i].id=i;string t=a[i].s2;bool w=1;int pd=0;bool hnum=0,tpd=1;for(int j=0,sum=0;j<a[i].s2.size();j++){if(j==0){if(a[i].s2[j]=='0' and (a[i].s2[j+1]>='0' and a[i].s2[j+1]<='9')){w=0;cout<<"ERR\n";break;}}if(a[i].s2[j]<'0' || a[i].s2[j]>'9'){tpd=1;if(a[i].s2[j+1]=='0' and (a[i].s2[j+2]>='0' and a[i].s2[j+2]<='9')){w=0;cout<<"ERR\n";break;}if((pd==0||pd==1||pd==2) && a[i].s2[j]!='.'){w=0;cout<<"ERR\n";break;}else if(pd==3 && a[i].s2[j]!=':'){w=0;cout<<"ERR\n";break;}else if(!hnum){w=0;cout<<"ERR\n";break;}else sum=0,pd++,tpd=0;hnum=0;}else{if(a[i].s2[j-1]=='0' and !hnum){w=0;cout<<"ERR\n";break;}hnum=1;sum=sum*10+a[i].s2[j]-'0';if(pd==0 || pd==1 || pd==2 || pd==3)if(sum<0 || sum>255){w=0;cout<<"ERR\n";break;}if(pd==4)if(sum<0 || sum>65535){w=0;cout<<"ERR\n";break;}if(pd>4){w=0;cout<<"ERR\n";break;}tpd=0;}}if(w==0) continue;if(pd<4 || !hnum){w=0;cout<<"ERR\n";continue;}if(a[i].s1=="Server"){if(pd1[t]){cout<<"FAIL\n";continue;}else{cout<<"OK\n";pd1[t]=1;pd2[t]=i;}}else{if(pd1[t]) cout<<pd2[t]<<"\n";else cout<<"FAIL\n";}}return 0;
}
此时,机房旁边一位大哥因斗地主而愁眉苦脸。
【题解】P7912 [CSP-J 2021] 小熊的果篮
建议用链表或set
写:
尤其是set
如果会使用如上的任意一种数据结构,就能AC。
如果不了解,我写什么也没什么必要吧···
AC code 不放了,祝大家AC这道氵绿题。
推荐代码:
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int n,a[N];
set<int> st[2];
int main(){scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",a+i),st[a[i]].insert(i);st[0].insert(1e9);st[1].insert(1e9);while(*st[0].begin()!=1e9||*st[1].begin()!=1e9){int now=min(*st[0].begin(),*st[1].begin());for(;now!=1e9;now=*st[a[now]^1].lower_bound(now)){printf("%d ",now);st[a[now]].erase(now);}puts("");}return 0;
}//by shy
2021CSP-J题解整合相关推荐
- 黑龙江农垦科技职业学院喜迎寒假多校联赛2 A,C,F,G,H,I,J题解
黑龙江农垦科技职业学院喜迎寒假多校联赛2 (欢 乐 A K 场) A,C,F,G,H,I,J题解 题目链接 A. 由于该题数据过大 首先就要使用到快读 不然会超时 快读模板以及解析(转载) 如果直接使 ...
- Peer J:整合高通量绝对丰度定量方法解析土壤细菌群落及动态
本文转自"上海天昊生物",已获授权 英文题目: Assessing soil bacterial community and dynamics by integrated high ...
- 牛客竞赛,ZUST第17届公开赛,摸鱼记(A、DEFGH、J题解,3/7题代码)
碎碎念 我快两点了才想起来下午比赛 一个多小时写了五份就签上两题的道 然后一直在调那个chess,优化搜索- 快结束了才意识到可以打表 好多题都只能过样例 合并序列,枚举k,暴力统计不知道为啥会WA, ...
- 团体程序设计天梯赛练习集题解整合
网上介绍 团体程序设计天梯赛练习集 的文章已经很多了, 我的这篇文章是对练习集题解的整合,方便每一位备战 团体程序设计天梯赛 的同学使用. 一年一度的 团体程序设计天梯赛 即将开始,PTA的练习集是必 ...
- 湖南大学新生赛C,G,J题解
C: 思路:做几组数据就基本能发现规律,奇数为-1,偶数为1 代码: #include<cstdio> #include<iostream> #include<cstri ...
- BJFU实验一链表部分题解整合
目录 题目传送门 214.基于链式存储结构的图书信息表的创建和输出 描述 输入 输出 输入样例 1 输出样例 1 AC 代码 AC 代码 215.基于链式存储结构的图书信息表的排序 描述 输入 输出 ...
- 2021/10/24 2021ICPC江西省赛 部分个人题解 A,B,H,K,L,J
K Many Littles Make a Mickle 题目大意:有t组输入,每组输入一个n,一个m,表示有n层,第i层有i*i个房间,每个房间有m个人,求有多少人. 题解:数据小,暴力求和即可(也 ...
- hdu(杭电oj)第一页题目题解
第一页有几题没写,有机会补上(嗯,忘了就是另一回事了). 这个是无聊的时候刷了第一页..存到博客上当做纪念吧.. hdu1000 简单题 难度1 计算a+b的值 hdu1001 简单题 难度1 计算1 ...
- C/C++描述 第十一届蓝桥杯省赛 C/C++ 大学C组 第一场(2020.7.5) 题目+题解
C/C++描述 第十一届蓝桥杯省赛 第一场(2020.7.5) 题目+题解 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓 ...
- 2019-2021 CSP-J1 CSP-S1 第一轮 初赛 相关题解及视频等
2019-2021 CSP-J CSP-S 第一轮成绩及分数线汇总 2019-2021 CSP-J CSP-S 第一轮成绩及分数线汇总_dllglvzhenfeng的博客-CSDN博客 CSP 第一轮 ...
最新文章
- Nacos源码NacosServiceRegistry
- Linux虚拟网络设备之tun/tap
- mysql ---- DDL(了解)
- Zabbix 3.4.2 install Configuration
- 20天精通 Windows 8:系列课程资料集
- SparrowRecSys电影推荐系统项目(一)
- Unity移动的三种方式
- 《30天自制操作系统》学习笔记--第11天
- python运行环境怎么配置_python配置环境 菜鸟教程,python的运行环境怎么配置
- Redisson 限流器 RRateLimiter的使用
- Word2010如何隐藏去掉回车符
- 理工生文言文的致谢——小木虫
- DirectShow编程(3.5) - 关于DirectShow - DirectShow中的事件通告
- RxSwift | 万物皆 rx 的原因
- openFOAM动量方程中张量的处理
- 苹果怎么截图?教你各种iPhone机型截屏方法
- leetcode|一道算法题错失谷歌offer
- Android抓包指南①: 使用Fiddler抓HTTP/HTTPS包
- Cydia 源地址大合集
- 自然语言处理技术的三个里程碑