3.18二刷基础119、124,完成进阶52

题目:

幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的"筛法"生成。

首先从1开始写出自然数1,2,3,4,5,6,....

1 就是第一个幸运数。

我们从2这个数开始。把所有序号能被2整除的项删除,变为:

1 _ 3 _ 5 _ 7 _ 9 ....

把它们缩紧,重新记序,为:

1 3 5 7 9 .... 。这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!! 删除的应该是5,11, 17, ...

此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,...)

最后剩下的序列类似:

1, 3, 7, 9, 13, 15, 21, 25, 31, 33, 37, 43, 49, 51, 63, 67, 69, 73, 75, 79, ...

要点总结:

只需要考虑所有小于等于n的数就可以,先全压进去,然后按照题目的要求去模拟,直到步长直接超过size就不用操作了。这里加一减一的坐标看一下特殊情况。

代码:

#include<bits/stdc++.h>

using namespace std;

int main(){

int m,n;

cin>>m>>n;

vector<int> lucky;

for(int i=1;i<=n;i=i+2){

lucky.push_back(i);

}

for(int i=1;i<lucky.size();i++){

int step=luckyi;

if(step>lucky.size()){

break;

}

vector<int> newl;

for (int i = 0; i < lucky.size(); ++i) {

if ((i + 1) % step != 0) {

newl.push_back(luckyi);

}

}

lucky=newl;

}

int count = 0;

for (int num : lucky) {

if (num > m && num < n) {

count++;

}

if (num >= n) {

break;

}

}

cout<<count;

return 0;

}

题目:

三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶。第一个农民在300时刻(从5点开始计时,秒为单位)给他的牛挤奶,一直到1000时刻。第二个农民在700时刻开始,在 1200时刻结束。第三个农民在1500时刻开始2100时刻结束。期间最长的至少有一个农民在挤奶的连续时间为900秒(从300时刻到1200时刻),而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为300秒(从1200时刻到1500时刻)。 你的任务是编一个程序,读入一个有N个农民(1 <= N <= 5000)挤N头牛的工作时间列表,计算以下两点(均以秒为单位): 最长至少有一人在挤奶的时间段。 最长的无人挤奶的时间段。

要点总结:

将所有时间按起始早的排序,起始相同的话按结束早的排序,然后遍历所有时间,创造新的merge数组,和前一个有重叠的话直接修改前一个的结束时间即可,没有重合就插入新的。最后遍历merge来判断有人的和没人的时间。

代码:

#include<bits/stdc++.h>

using namespace std;

struct Time{

int start;

int end;

};

bool compa(Time a,Time b){

if(a.start!=b.start){

return a.start<b.start;

}

return a.end<b.end;

};

int main(){

int n;

cin>>n;

vector<Time> arr;

for(int i=0;i<n;i++){

Time a;

cin>>a.start>>a.end;

arr.push_back(a);

}

sort(arr.begin(),arr.end(),compa);

vector<Time> merge;

merge.push_back(arr0);

int end=arr0.end;

for(int i=1;i<n;i++){

if(arri.start>end){

merge.push_back(arri);

}else{

if(arri.end>merge.back().end){

merge.back().end=arri.end;

}

}

}

int youren=0,wuren=0;

for(int i=0;i<merge.size();i++){

if(mergei.end-mergei.start>youren){

youren=mergei.end-mergei.start;

}

}

for(int i=1;i<merge.size();i++){

if(mergei.start-mergei-1.end>wuren){

wuren=mergei.start-mergei-1.end;

}

}

cout<<youren<<" "<<wuren;

return 0;

}

题目:

写一个程序,输入一个形如N/D的分数(N是分子,D是分母),输出它的小数形式。

如果小数有循环节的话,把循环节放在一对圆括号中。

例如, 1/3 = .33333333 写成0.(3)

41/333 = 0.123123123... 写成0.(123)

用xxx.0 表示整数

典型的转化例子: 1/3 = 0.(3)

22/5 = 4.4

1/7 = 0.(142857)

2/2 = 1.0

3/8 = 0.375

45/56 = 0.803(571428)

要点总结:

先算一下整数部分,余下的部分拿来算小数。如果同样的remain出现过了,那么repeat开始的地方就用map取出,此时可以直接break因为循环部分已经全输入了。没有出现过的话记录一下(用map,记录remain的值和第一次出现的下标)。另外将remain乘10再去除d得到这位小数,取余d得到更新的remain。最后输出的时候不要setw了,直接for里面用个count记录,到次数了就换行。

代码:

#include<bits/stdc++.h>

using namespace std;

int main(){

int n,d;

cin>>n>>d;

int zhen=n/d;

int remain=n%d;

int repeatstart=-1;

map<int,int> remain_idx;

vector<int> xiaoshu;

while(remain>0){

if(remain_idx.find(remain)!=remain_idx.end()){

repeatstart=remain_idxremain;

break;

}

remain_idxremain=xiaoshu.size();

int cur=remain*10/d;

xiaoshu.push_back(cur);

remain=remain*10%d;

}

string res=to_string(zhen)+".";

if(xiaoshu.size()==0){

res=res+"0";

}else{

if(repeatstart==-1){

for(int c : xiaoshu){

res=res+to_string(c);

}

}else{

for(int i=0;i<repeatstart;i++){

res=res+to_string(xiaoshui);

}

res+="(";

for(int i=repeatstart;i<xiaoshu.size();i++){

res=res+to_string(xiaoshui);

}

res+=")";

}

}

int count=0;

for(int i=0;i<res.size();i++){

cout<<resi;

count++;

if(count%76==0){

cout<<endl;

count=0;

}

}

return 0;

}

英语翻译:

量子人工智能将量子计算与人工智能结合起来以解决复杂的问题。量子算法可以加速对经典计算机来说棘手的训练以及优化过程。即使该领域目前任处于早期,其对于提升人工智能的能力具有巨大潜力。

人工智能驱动的推荐系统会分析用户数据来提供个性化内容。电商平台使用这些系统来推荐产品,流媒体服务

用这些系统来推荐电影音乐。这种个性化服务提升了用户参与度,但也带来了人们对于数据隐私的担忧。

人工智能在灾难相应领域的应用可以处理卫星和无人机图像来快速评估灾情。机器学习技术可以识别受影响的地区以及弱势人群,进而帮助救援组织高效分配资源。这种技术在紧急情况中节约了宝贵的时间。

quantum量子

intractable棘手的

相关推荐
手写码匠29 分钟前
手写 GraphRAG:从零实现图增强检索增强生成系统
人工智能·深度学习·算法·aigc
BomanGe135 分钟前
NSK重载高刚性滚珠丝杠技术详解
经验分享·算法·规格说明书
Matrix_111 小时前
手机里的计算摄影:广角形变校正算法
人工智能·算法·智能手机·计算摄影
WBluuue1 小时前
数据结构与算法:有序表(二):跳表
数据结构·c++·算法·skiplist
x138702859573 小时前
c语言中srtlen(指针使用计算字符长度)、传值和传址调用
c语言·开发语言·算法·visual studio
海兰3 小时前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
zwenqiyu3 小时前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法
wayz113 小时前
Momentum:TSI(真实强度指数)技术指标详解
算法·金融·数据分析·量化交易·特征工程
万事大吉CC4 小时前
Python 笔试输入模板总结
python·算法
lihao lihao4 小时前
Linux信号
开发语言·c++·算法