练习题(12-06)

news2024/11/27 7:35:10

目录

1.最小数

2.数天数 

3.非常特殊的数

4.最大值路径 

5.拆分质数 

6.文件拷贝 

 7.除去重复单词

8.变成回文字符串 


 

1.最小数

题目描述

请找到一个大于2022的最小数,这个最小的数转换成二进制后,最低的6个二进制全为0.

思路:枚举即可。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;

bool check(int n)
{
    vector<int> c;
    while(n)
    {
        c.push_back(n%2);
        n/=2;
    }
    for(int i=0;i<6;i++)
        if(c[i]!=0) return false;
    return true;
}

int main()
{
    for(int i=2023;;i++)
        if(check(i))
        {
            cout<<i;
            return 0;
        }
    return 0;
}

2.数天数 

 问题描述

我们计算从1949年10月1日至2022年1月1日一共经历了多少天?

#include<iostream>
using namespace std;

bool check(int n)
{
    if(n%4==0&&n%100!=0||n%400==0) return true;
    return false;
}

int main()
{
    int res=31+30+31;
    for(int i=1950;i<2022;i++)
    {
        res+=365;
        if(check(i)) res++;
    }
    cout<<res;
    return 0;
}

3.非常特殊的数

题目描述 

8518是一个非常特殊的数,如果把这个数看成16进制,那么他的值为8161616+51616+116+8=3472 ,而34072正好是8518的整数倍。9558也是这样一个数,当看成16进账时是38232.其实长度为1的数0到9都满足看成16进制是自己的整数倍.请问,除开长度为1的数,最小的满足这样条件的数是多少?

思路:从10开始枚举即可。

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

int main()
{
    for(int i=10;i<=8518;i++)
    {
        string s=to_string(i);
        int len=s.size();
        int sum=0;
        for(int j=0;j<len;j++)
        {
            int t=len-j-1;
            int tmp=1;
            while(t--) tmp*=16;
            sum+=tmp*(s[j]-'0');
        }
        if(sum%i==0)
        {
            cout<<i;
            break;
        }
    }
    return 0;
}

4.最大值路径 

题目描述

小蓝有一个30行60列的数字矩阵,矩阵中每一个数都是0到9之间的数字。现在小蓝想从这个矩阵第一行第一列画一条折线到第30行60列,请问这样经过的折线上的数字之和最大值是多少?

思路:dp问题,f[i][j]中i表示向左走的数字之和,j表示向下走的数字之和,w[i][j]:表示i行j列上面的数字 。

最后一格不是从上面到最后一格,就是从左边到最后一格。

 

f[i][j]表示的集合如下:

 

 

则状态转移方程f[i][j]=max(f[i-1][j],f[i][j-1])+w[i][j], 

代码如下: 

 

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=100;
int w[N][N],f[N][N];
int main()
{
    for(int i=1;i<=30;i++)
    {
        string s;
        cin>>s;
        for(int j=1;j<=60;j++) w[i][j]=s[i-1]-'0';
    }
    f[1][1]=w[1][1];
    for(int i=1;i<=30;i++)
        for(int j=1;j<=60;j++)
        {
            if(i==1&&j==1) continue;
            f[i][j]=max(f[i-1][j],f[i][j-1])+w[i][j];
        }
    cout<<f[30][60]<<endl;
    return 0;
}

5.拆分质数 

题目描述

将2022拆分成不同的质数的和,请问最多可以拆分几个? 

思路:01背包的变形,可以先求出0~2022之间所有的质数,假设这些质数就是物品,背包的容量就是2022,只要找出最多可以放进背包的物品个数,就可以解决。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;

const int N=3000;
int q[N];
int f[N][N];
int v[N];
int n=1;

bool check(int n)
{
    for(int i=2;i<=n/i;i++)
        if(n%i==0) return false;
    return true;
}

int main()
{
    for(int i=2;i<=2022;i++)
        if(check(i)) v[n++]=i;
    int m=2022;
    for(int i=1;i<n;i++)
        for(int j=2;j<=m;j++)
            if(v[i]>j) f[i][j]=f[i-1][j];
            else f[i][j]=max(f[i-1][j],f[i][j-v[i]]+1);
    cout<<f[n-1][m];
    return 0;
}

6.文件拷贝 

题目描述

小蓝正在拷贝一件文件,他现在已经拷贝了t秒时间,已经拷贝了c字节,文件总共有s字节,如果拷贝是匀速进行的,请问小蓝大概还要拷贝多少秒?

输入格式 

输入一行包含3个整数t,c,.

输出格式 

输出一个整数表示答案。

数据范围 

1<=t,c,s<=1000000000.

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;

int main()
{
    ll t,c,s;
    cin>>t>>c>>s;
    double v=t*1.0/c;
    s-=c;
    double cnt=s*v;
    if(cnt-(int)cnt>0) cout<<(int)cnt+1<<endl;
    else cout<<(int)cnt<<endl;
    return 0;
}

 7.除去重复单词

问题描述

小蓝有n个单词,但是有些单词是重复的,请你去掉重复的单词。

样例输入:

5

apple

apple 

net 

think

net

样例输出

think 

数据范围

1<=n<=100 

#include<iostream>
#include<algorithm>
#include<cstring>
#include<unordered_map>
#include<vector>
using namespace std;
unordered_map<string,int> h;
vector<string> c;
int main()
{
    int n;
    cin>>n;
    while(n--)
    {
        string x;
        cin>>x;
        if(h.count(x)==1) continue; //已经出现过
        else
        {
            c.push_back(x);
            h[x]++;
        }
    }
    for(int i=0;i<c.size();i++)
        cout<<c[i]<<endl;
    return 0;
}

8.变成回文字符串 

 题目描述

一个字符串如果从左往右和从右往左读相同,则称为回文串,例如lanqiaoaiqnal是一个回文串。小蓝有一个字符串,请你在这个字符串的右边加入若干字符,使其成为一个回文串,请你输出最短的回文串。

数据范围

1<=字符串长度<=100 

思路:从头往后遍历,找到第一个元素,以这个元素为起点到字符串末尾 构成一个回文串,此时这段区间就是公共的区间,只需要把这个字符前面的字符串反转到末尾即可。

这时候我们需要用到反转函数和字符串中i到j之间的字符串的函数,我们可以先考虑stl库,如果实在想不到,可以手写。

substr函数:

string substr(string x,int i,int j)
{
    string y;
    for(int k=i;k<=j;k++)
        y+=x[i];
    return y;
}

reverse函数:

string reverse(string x,int i,int j)
{
    string y;
    for(int k=j;k>=i;k--)
        y+=x[i];
    return y;
}

 

 

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

string s;

bool check(string s)
{
    int l=0,r=s.size()-1;
    while(l<r)
    {
        if(s[l++]!=s[r--]) return false;
    }
    return true;
}

int main()
{
    cin>>s;
    int i=0;
    int n=s.size();
    for(i=0;i<n;i++)
    {
        string x=s.substr(i,n); //把[i,n)之间的字符拼接起来构成一个字符串
        if(check(x)) break;
    }
    string t=s.substr(0,i);
    reverse(s.begin(),s.end());
    cout<<s+t;
    return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计Django物业管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

Java开发:反射机制

一、Java Reflection Reflection&#xff08;反射&#xff09;是java被视为动态语言的关键&#xff08;Java是静态语言&#xff0c;因为有了反射所以又被成为“准动态语言”&#xff09; 二、重点&#xff1a;一个类只有一个Class对象 三、反射的优缺点 优点&#xff1a;可…

【JAVA问题解决方案】02.Freemarker导出Excel超出上限分表解决方案

陈老老老板&#x1f9b8;&#x1f468;‍&#x1f4bb;本文专栏&#xff1a;Java问题解决方案&#xff08;都是一些常见的问题解决方案&#xff09;&#x1f468;‍&#x1f4bb;本文简述&#xff1a;本文讲一下有关Freemarker导出Excel分表的解决方案&#xff0c;超级详细。&a…

Tomcat7+ 弱口令 后台getshell漏洞

Tomcat7 弱口令 && 后台getshell漏洞 &#x1f349; shell 此环境来自vulhub工程&#xff1a; https://github.com/vulhub/vulhub 以下测试环境为ubuntu 20.04 &#x1f349;目录Tomcat7 弱口令 && 后台getshell漏洞环境准备弱密码登录war文件上传蚁剑连接…

SoftEther linux与windows使用

1、SoftEther简介 我们来先科普一下什么是SoftEther吧&#xff0c;SoftEther是由日本筑波大学的登大遊在硕士论文中提出的开源、跨平台、多重协议的虚拟专用网方案,其实我更看重的是他的内网穿透功能&#xff0c;下面来一张图片&#xff0c;说明它的强大。 SoftEther正确定的安…

【力扣】剑指offer第二天

剑指offer第二天[剑指 Offer 06. 从尾到头打印链表 - 力扣&#xff08;LeetCode&#xff09;]方法一代码方法二代码[剑指 Offer 24. 反转链表 - 力扣&#xff08;LeetCode&#xff09;]方法一代码方法二代码[剑指 Offer 35. 复杂链表的复制 - 力扣&#xff08;LeetCode&#xf…

日期功能组件(加上左右点击,更改月份)

要求效果&#xff1a; &#xff0c;直接可以显示年月&#xff0c;并且点击左右箭头可以更改月份 点击这个日期&#xff0c;可以选择。 最后实现效果&#xff1a; 实现&#xff1a; 先找一个插件&#xff0c;可以选择时间 <!-- 选择年月--><div class"form-…

SAP ARFCSTATE ARFCSDATA TRFCQOUT

SELECT count(1) FROM arfcsstate --18848155 20221122 清理前 -- 6582457 清理后 SELECT count(1) FROM ARFCSDATA a -- 81732430 202221122 清理前 -- 25064628 清理后 SELECT count(1) FROM TRFCQOUT t --18848095 202221122 …

面试必备:HashMap底层源码原来是这么简单(分析)

微信公众号&#xff1a;SteveCode 关注可了解更多的编程及开发经验。问题或建议&#xff0c;请公众号留言; 专注Java技术干货分享&#xff0c;Java技术、数据结构、相关工具、Spring全家桶、intellij idea…… 如果你觉得对你有帮助&#xff0c;欢迎赞赏 transient 发现了这个关…

re:Invent现场访谈:云计算如何重塑智能制造

众所周知&#xff0c;近年来包括中国和美国在内&#xff0c;世界上各个主要国家对制造业的关注度都在不断提升。也正因为如此&#xff0c;在2022亚马逊云科技re:Invent全球大会上&#xff0c;有关云计算技术在智能制造行业的应用&#xff0c;也理所当然地成为了诸多与会嘉宾关注…

【JMeter】线程组jp@gc - Stepping Thread Group(逐步线程组)

jpgc - Stepping Thread Group 逐步线程组 Action to be taken after a Sample error 发生sample错误时 Continue 继续 Start Next Thread Loop 开始新的线程 Stop Thread 停止线程 Stop Test 停止测试 Stop Test Now 立即停止测试 Threads Scheduling Parameters 线程调度…

STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试

一、前言 在STM32项目开发中&#xff0c;经常会用到存储芯片存储数据。 比如&#xff1a;关机时保存机器运行过程中的状态数据&#xff0c;上电再从存储芯片里读取数据恢复&#xff1b;在存储芯片里也会存放很多资源文件。比如&#xff0c;开机音乐&#xff0c;界面上的菜单图…

使用SpringBoot快速构建Web API

Dubbo 框架现在在国内的中小企业当中已经成为 Java 生态下服务化的事实标准&#xff0c;出现这种状态的原因很多&#xff0c;比如 Dubbo 框架设计优秀、文档和资料丰富、配置灵活、特性丰富等&#xff0c;但最主要的&#xff0c;我认为是 Java 开发人员对速度这一因素的痴迷。 …

详解设计模式:解释器模式

解释器模式&#xff08;interpreter pattern&#xff09;&#xff0c;是在 GoF 23 种设计模式中定义了的行为型模式。 解释器模式 这种模式被用在 SQL 解析、符号处理引擎等。 解释器模式 给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xf…

HTTP状态码是什么?

文章目录HTTP状态码1. 消息&#xff1a;1xx2. 成功&#xff1a;2xx3. 重定向&#xff1a;3xx4. 请求错误&#xff1a;4xx5. 服务器错误&#xff1a;5xxHTTP状态码 HTTP 状态码&#xff08;HTTP Status Code&#xff09;是一个表示服务器响应状态的 3 位整数代码。比如当服务器…

[Database] 关系型数据库中的MVCC是什么?怎么理解?原理是什么?MySQL是如何实现的?

文章目录前言并发控制并发控制的实现与锁的本质MVCC是什么&#xff1f;MVCC的多版本&#xff08;Multi-Version&#xff09;指的是什么&#xff1f;MVCC的实现方式&#xff1f;MySQL的实现PostgreSQL的实现结语前言 在并发场景下&#xff0c;如果我们不对数据做保护&#xff0c…

分布式文件存储系统FastDFS[1]-介绍以及安装

一、分布式文件存储 1.分布式文件存储的由来 在我们的项目中有很多需要存储的内容出现&#xff0c;比如图片&#xff0c;视频&#xff0c;文件等等&#xff0c;在早期的时候用户量不大&#xff0c;产生的文件也不是很多&#xff0c;这时我们可以把文件和服务程序放在一个服务器…

STAAD.Pro CONNECT Edition

STAAD.Pro CONNECT Edition Bentley STAAD或STAAD Pro软件是分析和设计世界第三世界的第一款最佳工程软件&#xff0c;对于金属、混凝土、木材、铝和冷金属的专业选择&#xff0c;设计几乎所有类型的塑料、石化、隧道、桥梁、蜡烛等结构专业的功能和软件中任何数据大小的使用。…

Java课程案例学习(3)

2.1 学生管理系统实现步骤 案例需求 针对目前我们的所学内容&#xff0c;完成一个综合案例&#xff1a;学生管理系统&#xff01;该系统主要功能如下&#xff1a; 添加学生&#xff1a;通过键盘录入学生信息&#xff0c;添加到集合中 删除学生&#xff1a;通过键盘录入要删…

Jcmd 虚拟机诊断利器

Jcmd 虚拟机诊断利器 Java虚拟机&#xff08;JVM&#xff09;是运行Java程序的抽象化的计算器。今天&#xff0c;来学习下如何轻松诊断正在运行的JVM。 JDK本身中提供了许多可用的工具&#xff0c;可以用于各种开发、监视和故障排除活动。推荐使用jcmd&#xff0c;简单易懂&a…