当前位置: 首页 > news >正文

可达鸭模拟赛1

数字降级:
思路
根据唯一分解定理,可以知道任意一个大于等于 的数字,都可以找到另一个数字将它除成质数。因此可以直接判断输入的数字是否为质数,如果为质数输出 0 ,否则输出 1 。
数据下,可以使用比较暴力的判断质数的方式,从 遍历到 然后依次判断
#include<iostream>
#include<cstdio>
using namespace std;
int prime(long long num){for(long long i=2;i*i<=num;i++){if(num%i==0){return 0;}}return 1;
}
int main(){long long n;cin>>n;if(prime(n)==1){cout<<0;}else{cout<<1;}return 0;
} 


注意事项:

                看数据范围!!!(考试就是没看见用的int)!!

分组
思路
考虑有多少个小组分数可以至少为 ,这些小组中必须有一个 。
所以假设 有 个,那么就说明有 个小组分数至少为 ,此时答案增加 (这一步是考虑这些小组对答案的贡献)。
再考虑有多少个小组分数可以至少为 ——这些小组必须有一个 ,并且小组分数至少为 的小组的数量一定小于等于小组分数至少为 的小组数量,所以涉及到一个求 min 的操作。
第一个测试点没有 0,那么每个小组分数肯定都为0
第二个测试点只有 0,那么每个小组分数都为1
第三四个测试点只有 1和 0,那么可以通过1 和 0凑2

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
long long a[N],n,vis[1005];
long long ans=0;
int main()
{cin>>n;for(int i=1;i<=n;i++){cin>>a[i];vis[a[i]]++;}long long m=vis[0]; for(int i=1;i<=1001;i++){if(vis[i]<m){ans+=(m-vis[i])*i;m=vis[i];}}cout<<ans;return 0;
}

抢夺地盘
思路
比较模板的 LIS 问题,从 到 求一次最长上升子序列,然后从 到 求一边最长下降子序列。注意这样的话会有一个重复点 ,所以考虑 是否需要修改。然后分类讨论。
20%数据下可以直接模拟,暴力的LIS可以通过60%数据,使用二分优化的LIS可以拿到满分

#include<iostream>
#include<cstdio>
using namespace std;
int n,pos,a[100005],b[100005],c[100005],p=0; 
int main(){//freopen("seize.in","r",stdin);//freopen("seize.out","w",stdout);cin>>n>>pos;for(int i=1;i<=n;i++) cin>>a[i];b[++p]=a[1];for(int i=2;i<pos;i++){if(a[i]>=b[p]) b[++p]=a[i];else{int l=1,r=p,mid=p>>1;while(l!=r){if(a[i]<b[mid]) r=mid;else l=mid+1;mid=(l+r)>>1;}b[l]=a[i];}}if(a[pos]>=b[p]) p++;else a[pos]=1e9+1;int ans=pos-p;p=1;c[p]=a[pos];for(int i=pos+1;i<=n;i++){if(a[i]<=c[p]) c[++p]=a[i];else{int l=1,r=p,mid=p>>1;while(l!=r){if(a[i]>c[mid]) r=mid;else l=mid+1;mid=(l+r)>>1;}c[r]=a[i];}}ans+=(n-pos-p+1);cout<<ans;//fclose(stdin);//fclose(stdout);return 0;
}

闯关

思路:直接模拟就行,让达达先走,在保证距离不超过扔距的前提下交换神器

#include<iostream>
#include<cstdio>
using namespace std;
int a[100005],b[100005],n,m,k,q,cnt=0,flag=0;
int main(){freopen("barrier.in","r",stdin);freopen("barrier.out","w",stdout);cin>>n>>m>>k>>q;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){cin>>b[i];}int xiaoke=0,dada=0;while(true){if(flag==0){while(dada<n&&b[dada+1]-b[dada]<=m){dada++;	} if(dada==n){break;}while(xiaoke<n&&a[xiaoke+1]-b[dada]<=q){xiaoke++;}flag=1;cnt++;}if(flag==1){while(xiaoke<n&&a[xiaoke+1]-a[xiaoke]<=m){xiaoke++;	} if(xiaoke==n){break;}while(dada<n&&b[dada+1]-a[xiaoke]<=q){dada++;}flag=0;cnt++;}	}cout<<cnt;return 0;
}

http://www.dtcms.com/a/438341.html

相关文章:

  • LINUX复习资料(一)
  • 专业做酒的网站有哪些互联网营销培训班 考证
  • 串扰09-Er与串扰
  • HarmonyOS应用开发深度解析:ArkTS语法与组件化开发实践
  • 免费的简历制作网站100大看免费行情的软件
  • seo站内优化站外优化vs做网站如何输出
  • 【学习K230-例程43】GT6700-AI视觉-人体关键点检测
  • 网站域名所有权wordpress文章截断
  • HTMLz设计一个电压电流波形显示界面
  • 大模型原理与实践:第三章-预训练语言模型详解_第1部分-Encoder-only(BERT、RoBERTa、ALBERT)
  • MySQL 慢查询日志slow query log
  • 刷赞抖音推广网站长沙网站seo分析
  • 怎么做网站界面设计如何推广店铺呢
  • C++笔记(面向对象)六(4+2C++11)个缺省函数详解
  • CTFHub 信息泄露通关笔记7:Git泄露 Log
  • 【Svelte】如何自定义路径别名(alias)?
  • 公司做哪个网站比较好西安外贸网站建设公司
  • DeepSeek-V3.2-Exp + PH8:国产大模型的性价比革命
  • 第二十三讲:特殊类和类型转换
  • 如何区分数学中的定理、引理、命题?
  • 森东网站建设南昌网站排名优化软件
  • 深圳网站建设制作开发公司开发公司app
  • 《强化学习数学原理》学习笔记8——贝尔曼最优公式小结
  • discuz网站开发深圳建设网站首页
  • Linux信号处理的相关数据结构和操作函数
  • 分类信息网站手机企业网站开发
  • 做杂志的网站有哪些织梦网站系统
  • 我的网站百度怎么搜索不到了文山网站建设代理
  • 小程序推广网站免费wordpress模板下载地址
  • 第66篇:AI+交通:智能驾驶、交通流优化与智慧物流