2019 ACM训练计划——( 每天5题 ) 训练计划⑧
发布日期:2021-06-29 14:25:45
浏览次数:3
分类:技术文章
本文共 2737 字,大约阅读时间需要 9 分钟。
A
题目大意
改版后的求T素数,除开1和本身外,还有一个数 求三个因子
题解
来分析一下对于每个数的情况,要满足题意只有三个因子的话,除开1和本身,那么另一个数一定是自己平方因子(即那个数的平方等于自己) 所以我们可以做一个剪枝: 对于m=sqrt(n) 在2到m中如果还存在因子的话,那么代表不符合题意 直接跳出来输出NO 然后我们对于n==1需要特别处理一下 直接输出NO即可
#includeusing namespace std;const int maxn=1e5+5;long long n;int main(){ ios::sync_with_stdio(false); cin.tie(0); while(cin>>n){ for(int i=0;i >x; long long m=sqrtl(x); int ff=1; if(x==1) ff=0; for(int j=2;ff&&j*j<=m;j++){ if(m%j==0) ff=0; } if(m*m==x&&ff) cout<<"YES"<
B
题目大意
求你是否能通过一次操作reverse数组的一段区域,然后使得整个数组是递增的
题解
一开始我还以为是只能交换两个值,题意理解错了,wa了几发,然后发现其实是reverse一段区间,可以用两个数组,将一个数组进行排序,与另一个数组进行比较,求出那段区间,然后将那段区间进行reverse,与排好序的数组的那一段进行比较 如果值不相同,直接输出no跑路
#includeusing namespace std;const int maxn=1e5+10;int a[maxn],b[maxn];int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=a[i]; } sort(a+1,a+1+n); int le=0,re=1; for(int i=1;i<=n;i++){ if(a[i]!=b[i]){ re=i; if(le==0) le=i; } } if(le==0) le=1; reverse(b+le,b+re+1); for(int i=le;i<=re;i++){ if(b[i]!=a[i]){ cout<<"no"<
C
题目大意
求出最大值与最小值之差 另外就是最大值与最小值的组合有多少
题解
注意一下特殊情况,那就是全都相同的时候,最大值最小值差为0 然后组合的话就是(相同数的个数*相同数的个数-1)/2 其实就是等差数列求和公式n * ( n - 1 ) / 2
#includeusing namespace std;typedef long long ll;int main(){ ios::sync_with_stdio(false); cin.tie(0); ll n; cin>>n; ll x; map mp; map ::iterator it; for(int i=1;i<=n;i++){ cin>>x; mp[x]++; } it=mp.begin(); ll a1=it->first; ll a2=it->second; it=mp.end(); it--; ll b1=it->first; ll b2=it->second; if(mp.size()==1){ cout<<0<<" "<
D
题目大意
求最大化点燃房间的时间 然后燃烧完的蜡烛b根又可以合一根
题解
先把所有的蜡烛依次点了,点完后用剩下的烛头组成新的蜡烛。。。。直到剩下的烛头不足b个,算出所有的点过的蜡烛的总数输出即可
#includeusing namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(0); int a,b; cin>>a>>b; int ans=a; while(a>=b){ ans+=a/b; a=a/b+a%b; } cout< <
E
题目大意
求数组中奇偶个数为1的数组下标
题解
我承认我又刷了一个水题。。。
#includeusing namespace std;const int maxn=200;int a[maxn];int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } int oo=0; int jj=0; int ido=0; int idj=0; for(int i=1;i<=n;i++){ if(a[i]&1){ jj++; idj=i; } else{ oo++; ido=i; } } if(jj==1) cout< <
学如逆水行舟,不进则退
转载地址:https://chocolate.blog.csdn.net/article/details/101284444 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月15日 15时08分38秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于java的音乐网站的设计与实现
2019-04-29
基于java的在线选房的设计与实现
2019-04-29
基于java的左面聊天室系统的设计与实现
2019-04-29
基于ssh的学生成绩管理系统的设计与实现
2019-04-29
基于ssh的学生宿舍管理系统
2019-04-29
基于ssm的在线招标系统的设计与实现
2019-04-29
基于vue框架的在线问卷的设计
2019-04-29
java的酒店房间管理系统
2019-04-29
基于Java的截图工具
2019-04-29
基于JAVA的停车场管理系统
2019-04-29
基于SSM的网上购物系统的设计与开发
2019-04-29
基于SSM框架的BS微博系统的设计与实现
2019-04-29
超市订单管理系统
2019-04-29
基于ssm的民宿网站
2019-04-29
基于JavaWeb的物流管理系统的设计与实现
2019-04-29
基于Java的飞机大战游戏的设计与实现论文
2019-04-29
基于java实现的超级马里奥游戏
2019-04-29
keepalived 实现高可用,负载均衡
2019-04-29
linux发送邮件通知
2019-04-29
linux不删除文件:替换rm命令
2019-04-29