每日小题打卡

devtools/2024/12/27 20:41:18/

目录

幂次方

手机键盘 

简单排序 

校庆 

性感素数 


幂次方

题目描述 

对任意正整数 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.ppmy.cn/devtools/145913.html

相关文章

Linux内核 -- UIO (User-space I/O) 简介与使用笔记

UIO (User-space I/O) 简介 UIO (User-space I/O) 是 Linux 内核提供的一种机制&#xff0c;用于简化设备驱动的开发。它将设备的硬件资源&#xff08;如内存映射、中断等&#xff09;通过简单的接口暴露给用户空间程序&#xff0c;从而使用户可以在用户空间编写复杂的设备逻辑…

内网穿透ubuntu20 docker coplar

sudo apt-get install curl curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash ubuntu-base报错 /sbin/init:No such file or directory解决办法 apt install systemd 命令安装即可 cpolar version 1.3 token认证 登录cpolar官网后台…

《信管通低代码信息管理系统开发平台》Windows环境安装说明

1 简介 《信管通低代码信息管理系统应用平台》提供多环境软件产品开发服务&#xff0c;包括单机、局域网和互联网。我们专注于适用国产硬件和操作系统应用软件开发应用。为事业单位和企业提供行业软件定制开发&#xff0c;满足其独特需求。无论是简单的应用还是复杂的系统&…

数据可视化期末复习-简答题

数据可视化的标准 实用性 完整性 真实性 艺术性 交互性 数据可视化的目标 通过数据可视化有效呈现数据中的重要特征 通过数据可视化揭示事物内部的规律和数据之间的内在联系 通过数据可视化辅助人们理解事物的概念和过程 通过数据可视化对模拟和测量进行质量监控 通…

音视频入门知识(四):封装篇

⭐四、封装篇 H264封装成mp4、flv等格式&#xff0c;那为什么需要封装&#xff1f; ​ h264也能播放&#xff0c;但是按照帧率进行播放&#xff0c;可能不准 ★FLV **FLV&#xff08;Flash Video&#xff09;**是一种用于传输和播放视频的容器文件格式。FLV 格式广泛应用于流媒…

第1章 R语言中的并行处理入门

标准&#xff1a;时间,开发&#xff0c;运行,工具&#xff0c;R机器&#xff0c;多核。 rdsm,openmp,conda。 相互网页外链。 第一章 1.1 反复出现的主题: 良好并行所具有的标准 R(解释性语言)的核心操作都在语言内部进行了高效的实现&#xff0c;因而只要正确使用&#xff…

2024年12月一区SCI-加权平均优化算法Weighted average algorithm-附Matlab免费代码

引言 本期介绍了一种基于加权平均位置概念的元启发式优化算法&#xff0c;称为加权平均优化算法Weighted average algorithm&#xff0c;WAA。该成果于2024年12月最新发表在中JCR1区、 中科院1区 SCI期刊 Knowledge-Based Systems。 在WAA算法中&#xff0c;加权平均位置代表当…

【Leetcode】3218. 切蛋糕的最小总开销 I

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; 有一个 m ∗ n m * n m∗n 大小的矩形蛋糕&#xff0c;需要切成 1 ∗ 1 1 * 1 1∗1 的小块。 给你整数 m m m &#xff0c; n n n 和两个数组&#xff1a; h o r i z o n t a l…