每日小题打卡

news2025/1/1 23:06:12

目录

幂次方

手机键盘 

简单排序 

校庆 

性感素数 


幂次方

题目描述 

对任意正整数 N,计算 X^Nmod233333 的值。

输入格式

共一行,两个整数 X 和 N。

输出格式

共一行,一个整数,表示 X^Nmod233333 的值。

数据范围

1≤X,N≤10^9

输入样例:

2 5

输出样例:

32

源代码 

快速幂嘛 

#include <iostream>
using namespace std;
typedef long long ll;
ll fast(ll a,ll b,ll p)
{
    if(b == 0)return 1 % p;
    ll ans = 1;
    while(b > 0)
    {
        if(b & 1)ans = ans * a % p;
        b >>= 1;
        a = a * a % p;
    }
    return ans;
}
int main()
{
    int x,n;
    cin >> x >> n;
    cout << fast(x,n,233333);
    return 0;
}

手机键盘 

题目描述 

请你计算按照手机键盘(9 键输入法)输入字母的方式,键入给定字符串(由小写字母构成)所花费的时间。

具体键入规则和花费时间如下描述:

对于同一键上的字符,例如 a,b,c 都在 “1” 键上,输入 a 只需要按一次,输入 c 需要连续按三次。

如果连续两个字符不在同一个按键上,则可直接按,如:ad 需要按两下,kz 需要按 6 下。

如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如 ac,在按了 a 之后,需要等一会儿才能按 c。

现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间段。

输入格式

输入包含多组测试数据。

每组数据占一行,包含一个由小写字母构成的字符串。

输出格式

对于每组输入,输出一行结果表示键入给定字符串所需要花费的时间。

数据范围

每个输入最多包含 100 组测试数据。
所有字符串的长度都不超过 100。

输入样例:

bob
www

输出样例:

7
7

源代码 

刚开始没动脑子直接暴力

#include <iostream>
using namespace std;
int main()
{
    string s;
    while(cin >> s)
    {
        int ans = 0;
        for(int i = 0;i < s.size();i ++ )
        {
            if(i > 0)
            {
                if((s[i] == 'a'||s[i] == 'b'||s[i] == 'c')&&(s[i - 1] >= 'a' && s[i - 1] <= 'c'))ans += 2;
                if((s[i] == 'd'||s[i] == 'e'||s[i] == 'f')&&(s[i - 1] >= 'd' && s[i - 1] <= 'f'))ans += 2;
                if((s[i] == 'g'||s[i] == 'h'||s[i] == 'i')&&(s[i - 1] >= 'g' && s[i - 1] <= 'i'))ans += 2;
                if((s[i] == 'j'||s[i] == 'k'||s[i] == 'l')&&(s[i - 1] >= 'j' && s[i - 1] <= 'l'))ans += 2;
                if((s[i] == 'm'||s[i] == 'n'||s[i] == 'o')&&(s[i - 1] >= 'm' && s[i - 1] <= 'o'))ans += 2;
                if((s[i] == 't'||s[i] == 'u'||s[i] == 'v')&&(s[i - 1] >= 't' && s[i - 1] <= 'v'))ans += 2;
                if((s[i] == 'p'||s[i] == 'q'||s[i] == 'r'||s[i] == 's')&&(s[i - 1] >= 'p' && s[i - 1] <= 's'))ans += 2;
                if((s[i] == 'w'||s[i] == 'x'||s[i] == 'y'||s[i] == 'z')&&(s[i - 1] >= 'w' && s[i - 1] <= 'z'))ans += 2;
            }
            if(s[i] == 'a'||s[i] == 'd'||s[i] == 'g'||s[i] == 'j'||s[i] == 'm'||s[i] == 'p'||s[i] == 't'||s[i] == 'w')ans += 1;
            else if(s[i] == 'b'||s[i] == 'e'||s[i] == 'h'||s[i] == 'k'||s[i] == 'n'||s[i] == 'q'||s[i] == 'u'||s[i] == 'x')ans += 2;
            else if(s[i] == 'c'||s[i] == 'f'||s[i] == 'i'||s[i] == 'l'||s[i] == 'o'||s[i] == 'r'||s[i] == 'v'||s[i] == 'y')ans += 3;
            else if(s[i] == 's'||s[i] == 'z')ans += 4;
        }
        cout << ans << endl;
    }
    return 0;
}

动了点脑子优化

#include <iostream>
using namespace std;
int a[26] = {1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};
int b[26] = {1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,6,7,7,7,8,8,8,8};
int main()
{
    string s;
    while(cin >> s)
    {
        int ans = 0;
        for(int i = 0;i < s.size();i ++ )
        {
            if(i == 0)ans += a[s[i] - 'a'];
            else
            {
                if(b[s[i] - 'a'] == b[s[i - 1] - 'a'])ans += 2;
                ans += a[s[i] - 'a'];
            }
        }
        cout << ans << endl;
    }
    return 0;
}

简单排序 

题目描述

给定一个包含 n 个整数的数组,请你删除数组中的重复元素并将数组从小到大排序后输出。

输入格式

第一行包含一个整数 n。

第二行包含 n 个不超过 1000 的正整数。

输出格式

输出去重和排序完毕后的数组。

数据范围

1≤n≤1000

输入样例:

6
8 8 7 3 7 7

输出样例:

3 7 8

源代码

vector容器排序

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> A;
int main()
{
    int n;
    cin >> n;
    for(int i = 1;i <= n;i ++ )
    {
        int num;
        cin >> num;
        A.push_back(num);
    }
    sort(A.begin(),A.end());
    A.erase(unique(A.begin(),A.end()),A.end());
    for(int i = 0;i < A.size();i ++ )cout << A[i] << ' ';
    return 0;
}

校庆 

题目描述

2019 年浙江大学将要庆祝成立 122 周年。

为了准备校庆,校友会收集了所有校友的身份证号。

现在需要请你编写程序,根据来参加校庆的所有人士的身份证号,统计来了多少校友。

输入格式

输入在第一行给出正整数 N。

随后 N 行,每行给出一位校友的身份证号(18 位由数字和大写字母 X 组成的字符串)。题目保证身份证号不重复。

随后给出前来参加校庆的所有人士的信息:

首先是一个正整数 M。

随后 M 行,每行给出一位人士的身份证号。题目保证身份证号不重复。

输出格式

首先在第一行输出参加校庆的校友的人数。

然后在第二行输出最年长的校友的身份证号 —— 注意身份证第 7−14 位给出的是 yyyymmdd 格式的生日。

如果没有校友来,则在第二行输出最年长的来宾的身份证号。题目保证这样的校友或来宾必是唯一的。

数据范围

1≤N,M≤10^5

输入样例:

5
372928196906118710
610481197806202213
440684198612150417
13072819571002001X
150702193604190912
6
530125197901260019
150702193604190912
220221196701020034
610481197806202213
440684198612150417
370205198709275042

输出样例:

3
150702193604190912

源代码

利用哈希表进行处理

A.count(s)在容器之中查找名为s的元素

A.insert(s)在容器之中插入名为s的元素

a.empty()和a.substr(idx,lenth)分别是

判断a字符串是否为空和截取字符串的下标从idx开始长度为lenth的字串 

特别注意文字游戏:

记得在来访者之中没有校友的话输出来访者之中年龄最大的身份证号

在来访者之中有校友的话输出参加校庆的校友当中年龄最大的身份证号 

#include <iostream>
#include <unordered_set>
#include <algorithm>
using namespace std;
unordered_set<string> A;
int ans = 0;
int main()
{
    int n;
    cin >> n;
    while(n -- )
    {
        string s;
        cin >> s;
       	A.insert(s);
    }
    int m;
    cin >> m;
    string a,b;
	while(m -- )
    {
		string s;
		cin >> s;
		if(A.count(s))
		{
		    ans ++ ;
		    if(a.empty() || a.substr(6,8) > s.substr(6,8))a = s;
		}
		if(b.empty() || b.substr(6,8) > s.substr(6,8))b = s;
	}
	cout << ans << endl;
	if(ans)cout << a;
	else cout << b;
	return 0;
}

性感素数 

题目描述

“性感素数”是指形如 (p,p+6) 这样的一对素数。

之所以叫这个名字,是因为拉丁语管“六”叫“sex”(即英语的“性感”)。

现给定一个整数,请你判断其是否为一个性感素数。

输入格式

输入在一行中给出一个正整数 N。

输出格式

若 N 是一个性感素数,则在一行中输出 Yes,并在第二行输出与 N 配对的另一个性感素数(若这样的数不唯一,输出较小的那个)。

若 N 不是性感素数,则在一行中输出 No,然后在第二行输出大于 N 的最小性感素数。

数据范围

1≤N≤10^8

输入样例1:

47

输出样例1:

Yes
41

输入样例2:

21

输出样例2:

No
23

源代码

首判N是否为性感素数

若其是则必定有解,优先输出其左边较小的解,若没有的话则输出右边较大的解

若是无解的话则开始从N往后查找最小的性感素数而不是素数 

#include <iostream>
#include <cmath>
using namespace std;
bool judge(int n)
{
    if(n == 0||n == 1||n < 0)return 0;
    for(int i = 2;i <= sqrt(n);i ++ )
    {
        if(n % i == 0)return false;
    }
    return true;
}
bool sex(int n)
{
    if(judge(n) && judge(n + 6) || judge(n) && judge(n - 6))return true;
    else return false;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    if(sex(n))
    {
        cout << "Yes" << endl;
        if(judge(n - 6))cout << n - 6 << endl;
        else if(judge(n + 6))cout << n + 6 << endl;
    }
    else
    {
        cout << "No" << endl;
        for(int i = n;;i ++ )
        {
            if(sex(i))
            {
                cout << i << endl;
                break;
            }
        }
    }
    return 0;
}

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

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

相关文章

【Spring】 Bean 注入 HttpServletRequest 能保证线程安全的原理

文章目录 前言1. 图示2. 源码坐标后记 前言 今天看了一段老业务代码&#xff0c;HttpServletRequest 被注入后直接用于业务逻辑。 好奇Spring是如何解决线程安全问题。 Controller public class TestController {ResourceHttpServletRequest request;ResponseBodyGetMapping(…

iOS Masonry对包体积的影响

01 Masonry介绍 Masonry是iOS在控件布局中经常使用的一个轻量级框架&#xff0c;Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式&#xff0c;让我们可以以链式的方式为我们的控件指定约束。 常用接口声明与实现&#xff1a; 使用方式…

C 实现植物大战僵尸(二)

C 实现植物大战僵尸&#xff08;二&#xff09; 前文链接&#xff0c;C 实现植物大战僵尸&#xff08;一&#xff09; 五 制作启动菜单 启动菜单函数 void startUI() {IMAGE imageBg, imgMenu1, imgMenu2;loadimage(&imageBg, "res/menu.png");loadimage(&am…

sqlserver镜像设置

本案例是双机热备&#xff0c;只设置主体服务器&#xff08;主&#xff09;和镜像服务器&#xff08;从&#xff09;&#xff0c;不设置见证服务器 设置镜像前先检查是否启用了 主从服务器数据库的 TCP/IP协议 和 RemoteDAC &#xff08;1&#xff09;打开SQL Server配置管理器…

springboot503基于Sringboot+Vue个人驾校预约管理系统(论文+源码)_kaic

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装个人驾校预约管理系统软件来发挥其高效地信息处理的作用&am…

游戏引擎学习第61天

回顾并计划接下来的事情 我们现在的目标是通过创建一个占位符版本的游戏来展示我们所做的工作。这个版本的游戏包含了许多基本要素&#xff0c;目的是快速构建一些东西&#xff0c;进行测试&#xff0c;并观察代码结构的形成。这些代码的实施是为了理解系统如何工作&#xff0…

探索PyTorch:从入门到实践的demo全解析

探索PyTorch:从入门到实践的demo全解析 一、环境搭建:PyTorch的基石(一)选择你的“利器”:安装方式解析(二)步步为营:详细安装步骤指南二、基础入门demo:点亮第一盏灯(一)张量操作:深度学习的“积木”(二)自动求导:模型学习的“幕后英雄”三、数据处理demo:喂饱…

hiprint结合vue2项目实现静默打印详细使用步骤

代码地址是&#xff1a;vue-plugin-hiprint: hiprint for Vue2/Vue3 ⚡打印、打印设计、可视化设计器、报表设计、元素编辑、可视化打印编辑 本地安装包地址&#xff1a;electron-hiprint 发行版 - Gitee.com 1、先安装hipint安装包在本地 2、项目运行npm&#xff08;socket.…

Docker Container 可观测性最佳实践

Docker Container 介绍 Docker Container&#xff08; Docker 容器&#xff09;是一种轻量级、可移植的、自给自足的软件运行环境&#xff0c;它在 Docker 引擎的宿主机上运行。容器在许多方面类似于虚拟机&#xff0c;但它们更轻量&#xff0c;因为它们不需要模拟整个操作系统…

GXUOJ-算法-第二次作业

1.矩阵连&#xff08;链&#xff09;乘 问题描述 GXUOJ | 矩阵连乘 代码解答 #include<bits/stdc.h> using namespace std;const int N50; int m[N][N]; int p[N]; int n;int main(){cin>>n;//m[i][j] 存储的是从第 i 个矩阵到第 j 个矩阵这一段矩阵链相乘的最小…

OpenCV计算机视觉 02 图片修改 图像运算 边缘填充 阈值处理

目录 图片修改&#xff08;打码、组合、缩放&#xff09; 图像运算 边缘填充 ​阈值处理 上一篇文章&#xff1a; OpenCV计算机视觉 01 图像与视频的读取操作&颜色通道 图片修改&#xff08;打码、组合、缩放&#xff09; # 图片打码 import numpy as np a cv2.imre…

不修改内核镜像的情况下,使用内核模块实现“及时”的调度时间片超时事件上报

一、背景 之前的博客 不修改内核镜像的情况下&#xff0c;使用内核模块实现高效监控调度时延-CSDN博客 里&#xff0c;我们讲了不修改内核镜像高效监控每次的调度时延的方法。这篇博客里&#xff0c;我们对于调度时间片也做这么一个不修改内核镜像的改进。关于调度时间片过长的…

Flink定时器

flink的定时器都是基于事件时间&#xff08;event time&#xff09;或事件处理时间&#xff08;processing time&#xff09;的变化来触发响应的。对一部分新手玩家来说&#xff0c;可能不清楚事件时间和事件处理时间的区别。我这里先说一下我的理解&#xff0c;防止下面懵逼。…

使用 OpenCV 绘制线条和矩形

OpenCV 是一个功能强大的计算机视觉库&#xff0c;它不仅提供了丰富的图像处理功能&#xff0c;还支持图像的绘制。绘制简单的几何图形&#xff08;如线条和矩形&#xff09;是 OpenCV 中常见的操作。在本篇文章中&#xff0c;我们将介绍如何使用 OpenCV 在图像上绘制线条和矩形…

【Artificial Intelligence篇】AI 前沿探秘:开启智能学习的超维征程

目录 一、人工智能的蓬勃发展与智能学习的重要性: 二、数据的表示与处理 —— 智能学习的基石: 三、构建一个简单的感知机模型 —— 智能学习的初步探索: 四、神经网络 —— 开启超维征程的关键一步: 五、超维挑战与优化 —— 探索智能学习的深度: 六、可视化与交互 —— …

大数据的尽头是数据中台吗?

大数据的尽头是数据中台吗&#xff1f; 2018年末开始&#xff0c;原市场上各种关于大数据平台的招标突然不见&#xff0c;取而代之的是数据中台项目&#xff0c;建设数据中台俨然成为传统企业数字化转型首选&#xff0c;甚至不少大数据领域的专家都认为&#xff0c;数据中台是…

珞珈一号夜光遥感数据地理配准,栅格数据地理配准

目录 一、夜光数据下载&#xff1a; 二、夜光遥感数据地理配准 三、计算夜光数据值 四、辐射定标 五、以表格显示分区统计 五、结果验证 夜光数据位置和路网位置不匹配&#xff0c;虽然都是WGS84坐标系&#xff0c;不匹配&#xff01;&#xff01;&#xff01;不要看到就直接…

3.若依前端项目拉取、部署、访问

因为默认RuoYi-Vue是使用的Vue2,所以需要另外去下载vue3来部署。 拉取代码 git clone https://gitee.com/ys-gitee/RuoYi-Vue3.git 安装node才能执行npm相关的命令 执行命令npm install 如果npm install比较慢的话&#xff0c;需要添加上国内镜像 npm install --registrhttp…

【Java】线程相关面试题 (基础)

文章目录 线程与进程区别并行与并发区别解析概念含义资源利用执行方式应用场景 创建线程线程状态如何保证新建的三个线程按顺序执行wait方法和sleep方法的不同所属类和使用场景方法签名和参数说明调用wait方法的前提条件被唤醒的方式与notify/notifyAll方法的协作使用示例注意事…

手机租赁平台开发全攻略打造高效便捷的租赁服务系统

内容概要 手机租赁平台开发&#xff0c;简单说就是让用户能轻松租赁各类手机的高效系统。这一平台不仅帮助那些想要临时使用高端手机的人们节省了不少资金&#xff0c;还为商家开辟了新的收入渠道。随着智能手机的普及&#xff0c;很多人并不需要长期拥有一部手机&#xff0c;…