双周赛(三)

news2025/1/20 12:00:12

T1:

如果你仍然再用二指禅打字,那我建议你重新学习打字,这样你打字会更快,感觉更舒适和愉快。

有很多网站教授正确的打字。下图描述了基本原理: 用同一手指按压颜色相同的键。黄色键需要用小指按压,蓝色的用无名指,绿色的用中指,红色的用食指。

另外,左手按键盘的左侧(从左侧的5、T、G、B键开始)右手按压右侧(从右侧的键6、Y、H、N开始)。拇指负责空格键。

图片描述的键盘是美式键盘。

现在,给出一段长度为 len(1≤len≤50) 的字符串,请你计算如果正确打出这个字符串,每个手指敲击键盘的次数。

输入格式:

输入为一行,一个由大写字母、数字和特殊符号组成的字符串(不包括空格,不需要管图片中未显示的按键)。

输出格式:

输出8行,表示左手小指、无名指、中指、食指以及右手食指、中指、无名指、小指敲击键盘的次数。

输入样例1:

AON=BOO; 

输出样例1:

1
0
0
1
1
0
3
2

 思路:本题就是简单的把键盘上的字母输出即可。

代码:

#include<iostream>
using namespace std;

int main() 
{
    int num[8] = {};
    char ch;
    while ((ch = getchar()) != EOF) 
    {
        if (ch == 'Z' || ch == 'A' || ch == 'Q' || ch == '1')
            num[0]++;
        else if (ch == 'X' || ch == 'S' || ch == 'W' || ch == '2')
            num[1]++;
        else if (ch == 'E' || ch == 'D' || ch == 'C' || ch == '3')
            num[2]++;
        else if (ch == 'V' || ch == 'F' || ch == 'R' || ch == '4')
            num[3]++;
        else if (ch == 'B' || ch == 'G' || ch == 'T' || ch == '5')
            num[3]++;
        else if (ch == 'N' || ch == 'H' || ch == 'Y' || ch == '6')
            num[4]++;
        else if (ch == 'M' || ch == 'J' || ch == 'U' || ch == '7')
            num[4]++;
        else if (ch == ',' || ch == 'K' || ch == 'I' || ch == '8')
            num[5]++;
        else if (ch == '.' || ch == 'L' || ch == 'O' || ch == '9')
            num[6]++;
        else if (ch == '/' || ch == ';' || ch == 'P' || ch == '0')
            num[7]++;
        else if (ch == '[' || ch == ']' || ch == '\'' || ch == '-' || ch == '=')
            num[7]++;
    }
    for (int i = 0;i < 8;i++) 
        cout << num[i] << endl;
    return 0;
}

T2

有 N 根完全相同的香肠, 现在要平均分给 M 个客人。 问最少需要切几刀才能将其平均分给客人(不能多个香肠一起切)。

输入格式:

两个整数 N(1≤N≤105) 和 M(1≤M≤105)

输出格式:

一个整数,表示要切的刀数

输入样例:

在这里给出一组输入。例如:

2 6

输出样例:

在这里给出相应的输出。例如:

4

思路:将一根香肠代表数字1,先求出所有香肠放在一起平分需要切的大小N/M,所有N/M的倍数都要切一刀,如果正好是整数就不用切,最后的结果就是要切的刀数。

代码:

#include <bits/stdc++.h>
using namespace std;

int main()
{
	double N, M;
	int ans = 0;
	cin >> N >> M;
	double num = 0;
	double i = 1;
	while (num < N)
	{
		num = (i*N / M);
		i++;
		int in = num;
		if (num != (double)in )
			ans++;
	}
	cout << ans;
	return 0;
}

T3

学校的礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。

输入格式:

第一行是一个整型数m(m<100)表示共有m组测试数据。
每组测试数据的第一行是一个整数n(1<n<10000)表示该测试数据共有n个活动。
随后的n行,每行有两个正整数Bi,Ei(0<=Bi,Ei<10000),分别表示第i个活动的起始与结束时间(Bi<=Ei)

输出格式:

对于每一组输入,输出最多能够安排的活动数量。
每组的输出占一行

输入样例:

在这里给出一组输入。例如:

2
2
1 10
10 11
3
1 10
9 11
11 20

输出样例:

在这里给出相应的输出。例如:

2
2

思路:排序开始时间,将开始时间与结束时间比较寻找符合条件的,再选择符合条件的结束时间最早的

代码:

#include <bits/stdc++.h>
using namespace std;
int n, x;
struct M
{
	int beg;
	int ed;
}me[10000] = { {-1,-1} };

bool cmp(M& me, M& b)
{
	return me.ed < b.ed;
}

int main()
{

	cin >> n;
	while (n--)
	{
		cin >> x;
		for (int i = 1; i <= x; i++)
			cin >> me[i].beg >> me[i].ed;
		sort(me + 1, me + 1 + x, cmp);
		int num = 1,j=1;
		for (int i = 2;i <= x;i++) 
		{
			if (me[i].beg >= me[j].ed) 
               //当下一个的会议开始时间比前一个结束时间要晚,则安排此会议
			{
				num++;
				j = i;
			}
		}
		cout << num << endl;
	}
	return 0;
}

T4

传说二战时X国收到了上帝的一串密码,只有解开密码,才能阻止战争的继续进行,世界才会恢复和平。解开密码的第一道工序就是解压缩密码,上帝对于连续的若干个相同的子串"X"会压缩为"[DX]"的形式(D是一个整数且1<=D<=99),比如说字符串"CBCBCBCB"就压缩为"[4CB]"或者"[2[2CB]]",类似于后面这种压缩之后再压缩的称为二重压缩。如果是"[2[2[2CB]]]"则是三重的。现在我们给你上帝发送的密码,请你对其进行解压缩。

输入格式:

一个字符串。

输出格式:

一个字符串。

输入样例:

在这里给出一组输入。例如:

AC[3FUN]

输出样例:

在这里给出相应的输出。例如:

ACFUNFUNFUN

思路:对每个输入的字符进行判断,遇到【后,输入数字,之后如果遇到字母,直接加到最终的字符串后。

代码:

#include <bits/stdc++.h>
using namespace std;
string D() 
{
    char c;
    string str,ans;
    while (cin >> c) 
    {
        if (c == '[') 
        {
            int n;
            cin >> n;
            str = D();
            while (n >= 1)
            {
                ans += str;
                n--;
            }

        }
        else if (c == ']') 
            return ans;
        else 
            ans += c;
    }
    return ans;
}
int main() 
{
    cout << D();
    return 0;
}

T5

恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。
首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。
然后,让这 n 位大臣排成一排,国王站在队伍的最前面。
排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:
排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。
国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。
注意,国王的位置始终在队伍的最前面。

输入格式:

第一行包含一个整数 n(1≤n≤1000),表示大臣的人数。
第二行包含两个整数 a (0<a)和 b(b<10000),之间用一个空格隔开,分别表示国王左手和右手上的整数。
接下来 n 行,每行包含两个整数 a 和 b,之间用一个空格隔开,分别表示每个大臣左手和右手上的整数。

输出格式:

输出只有一行,包含一个整数,表示重新排列后的队伍中获奖赏最多的大臣所获得的金币数。

输入样例:

在这里给出一组输入。例如:

3
1 1
2 3
7 4
4 6

输出样例:

在这里给出相应的输出。例如:

2

思路:有中间两个人 i 和 i+1,显然他们俩怎么排对后面没有影响,记 a 为国王到 i-1 个人的 左手数的乘积
通过比较max{a/db[i], a*da[i]/db[i+1]} 和max{a/db[i+1],a*da[i+1]/db[i]}判断换与不换
两边都除以a乘以db[i]*db[i+1]得 max{db[i+1],da[i]*db[i]} < max{db[i],da[i+1]*db[i+1]}
因为da[i]*db[i]>db[i],所以 max{db[i],da[i]*db[i]} < da[i+1]*db[i+1]
同理因为 da[i]*db[i]>db[i] 所以 原式为 da[i]*db[i]<da[i+1]*db[i+1]
即这样排能使结果最优

代码:

#include <bits/stdc++.h>
using namespace std;
int n;
int ds[50000] = {}, dr[50000] = {};
struct Data
{
	int da;
	int db;
}t[10005];

int cmp(Data x, Data y)
{
	return x.da * x.db < y.da* y.db;
}

int res[20005];
string mb(string a, string b)
{
	reverse(a.begin(), a.end());
	reverse(b.begin(), b.end());
	memset(res, 0, sizeof res);
	for (int i = 0;i < a.size();i++)
	{
		for (int j = 0;j < b.size();j++)
		{
			res[i + j] += (a[i] - '0') * (b[j] - '0');
		}
	}
	for (int i = 0;i < a.size() + b.size();i++)
	{
		if (res[i] >= 10) 
		{
			res[i + 1] += res[i] / 10;
			res[i] %= 10;
		}
	}
	string str;
	bool fi = true;
	for (int i = a.size() + b.size() - 1;i >= 0;i--) 
	{
		if (res[i] == 0 && fi==true)
			continue;
		else
		{
			fi = false;
			str += res[i] + '0';
		}
	}
	return str;
}

string ma(string a, string b)
{
	if (a.size() != b.size())
		return a.size() > b.size() ? a : b;
	return a > b ? a : b;
}


string dst(string da, int db) 
{
	memset(ds, 0, sizeof(ds));
	memset(dr, 0, sizeof(dr));
	for (int i = 0;i < da.size();i++)
		ds[i + 1] = da[i] - '0';
	int bs = 0;
	for (int i = 1;i <= da.size();i++) 
	{
		dr[i] = (bs * 10 + ds[i]) / db;
		bs = (bs * 10 + ds[i]) % db;
	}
	int lc = 1;
	while (dr[lc] == 0 && lc < da.size())
		lc++;
	string dans = "";
	for (int i = lc;i <= da.size();i++)
		dans += dr[i] + '0';
	return dans;
}

string tstr(int qs) 
{
	string p_ans = "";
	while (qs) 
	{
		p_ans += qs % 10 + '0';
		qs /= 10;
	}
	reverse(p_ans.begin(), p_ans.end());
	return p_ans;
}

int main()
{
	cin >> n;
	for (int i = 0;i <= n;i++)
		cin >> t[i].da >> t[i].db;
	sort(t + 1, t + n + 1, cmp);
	string ans = "0", mul = tstr(t[0].da);
	for (int i = 1;i <= n;i++) 
	{
		ans = ma(ans, dst(mul, t[i].db));
		mul = mb(mul, tstr(t[i].da));
	}
	cout << ans << endl;
	return 0;
}

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

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

相关文章

最新 iOS 更新后 iPhone 联系人和数据丢失/丢失

我两天前做了最新的更新&#xff0c;现在我有丢失的联系人。帮助&#xff01;&#xff01; 许多 iPhone 用户犹豫是否将他们的设备升级到最新的 iOS 系统有一个&#xff08;也许是几个&#xff09;充分的理由。每次 iOS 发布后&#xff0c;总会有新功能震撼我们的世界。但是&am…

Unity 小积累

** Unity 学习小积累 ** 1.FindObjectsOfType和FindObjectOfType 前者返回所有个体&#xff08;集合&#xff09; 后者返回第一个个体 &#xff08;单个&#xff09; 2.uinty打包问题 打包webgl遇到了 实际上和py没有关系 c盘不够了 单纯 3.Unity 默认下载位置 坑 1.Uni…

【css样式】页面实现一侧固定一侧滚动的效果,到底部后一起滚动

文章目录position的定位类型position的定位类型 static&#xff1a;默认值&#xff0c;没有定位&#xff0c;遵循正常的文档流 fixed&#xff1a;固定定位&#xff0c;元素的位置是相对于浏览器窗口 relative&#xff1a;相对定位&#xff0c;相对于其正常的位置&#xff0c;移…

BOSS直聘自动投简历的实现过程

这两年疫情&#xff0c;公司业务越来越差&#xff0c;必须得准备后路了&#xff0c;每天睡前都会在直聘上打一遍招呼&#xff0c;一直到打哈欠有睡意为止...,这样持续了一周&#xff0c;发现很难坚持&#xff0c;身为一名资深蜘蛛侠&#xff0c;怎么能这样下去呢&#xff1f;于…

3D模型的生成式AI

生成式 AI 席卷了 2022 年&#xff0c;我们最近决定 Physna 不应错过这个热点。 因此&#xff0c;尽管生成 AI 并不是我们的商业模式—Physna 是一家 3D 搜索和分析公司&#xff0c;专注于 AR/VR 和制造中的工程和设计应用—我们还是决定为 3D 模型和场景生成 AI 构建一个非常基…

Node.js——初识Node.js与内置模块(一)

1.初识 Node.js 1.1 浏览器中的 JavaScript运行环境 1.浏览器中的 JavaScript 的组成部分 2.为什么 JavaScript 可以在浏览器中被执行 3.为什么 JavaScript 可以操作 DOM 和 BOM 4.浏览器中的 JavaScript 运行环境 Javascript可以借助node,js进行后端开发 1.2 Node.js 简介 …

virtio前端驱动通知机制分析

virtio前端驱动通知机制分析 virtio 前后端主要通过PCI配置空间的寄存器来完成通信&#xff0c;I/O 请求的数据地址存放于 vring 中&#xff0c;并通过共享vring这个区域来实现 I/O 请求数据的共享。 由上图可知&#xff0c;虚拟机与主机之间交互用到了两个结构体&#xff1a;p…

智能网联汽车行业发展

智能网 联汽车信息安全发展趋势 智能网联汽车行业发展 根据工信部发布的《国家车联网产业标准体系建设 指南&#xff08;智能网联汽车&#xff09;》的定义&#xff0c;智能网联汽车是指搭载先进的车载传感器 、控制器、执行器等装置&#xff0c;并融合现代通信与网络技术&a…

明道云联合思迈特打造会员管理应用可视化联合解决方案

背景介绍 明道云在协助企业数字化转型过程中&#xff0c;发现客户对利用业务数据形成企业级报表和数据可视化大屏的需求十分强烈。为了满足这种需求&#xff0c;企业通常需要成立专门的数据分析团队&#xff0c;但这需要巨大的人力和财力投入&#xff0c;时间周期也较长。为了…

信息数智化招采系统源码——信息数智化招采系统

信息数智化招采系统 服务框架&#xff1a;Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构&#xff1a;VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术&#xff1a;Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stre…

React 学习笔记总结(五)

文章目录1. React 嵌套路由(多级路由)2. params参数 与 query参数3. React路由组件 传递params参数数据4. React路由组件 传递search参数5. React路由组件 传递search参数6. React路由组件 特殊情况: 刷新页面7. React路由 的 push 和 replace8. React的 编程式路由9. React路由…

Transformer架构:位置编码

2017年&#xff0c;Google等人提出了Vaswani提出了一种新颖的纯注意力序列到序列架构&#xff0c;闻名学术界与工业界的Transformer架构横空出世&#xff0c;它的可并行化训练能力和优越的性能称为自然语言处理领域和计算机视觉领域研究人员的热门选择&#xff0c;本文将重点讨…

elasticsearch--Master选举

最近一直在学习elasticsear相关的东西&#xff0c;在这学习的过程中记录一下比较重要的学习内容。方便以后看的时候加深印象。 假如宕机的节点是Master节点 下面是Maste节点选举 的流程图 在findMaster的方法中每隔一段时间就会ping所有的节点&#xff0c;看看有没有哪个节…

java设计模式三

文章目录4) 创建IOC容器相关的类5) 自定义IOC容器测试6) 案例中使用到的设计模式7.2 剖析MyBatis框架中用到的经典设计模式7.2.1 MyBatis回顾7.2.1.1 MyBatis与ORM框架7.2.1.1 MyBatis的基础使用7.2.2 MyBatis中使用到的设计模式7.2.2.1 Builder模式7.2.2.2 工厂模式7.2.2.3 单…

基于Java开发(PC)小说自检测系统【100010061】

Java 语言与系统设计课程&#xff08;小说自检测系统&#xff09; 一、目的与要求 ​ 自行下载最喜爱的小说 1 部。存到服务器中&#xff0c;格式自定。一般存储为文本文档。要求长篇小说&#xff0c;20 万字以上。举例说明&#xff1a;下载《三国演义》保存在服务器端。 ​…

Secure Boot功能简析

在数据中心中&#xff0c;云服务器由各种处理设备和外围组件&#xff08;如加速器和存储设备&#xff09;组成&#xff0c;这些设备通常都运行着固件。对云平台服务商来说&#xff0c;为保证这些设备的安全可靠&#xff0c;需要一种或多种机制&#xff0c;来保证这些设备在测试…

XYplorer使用教程

XYplorer使用教程 XYplorer是Windows的文件管理器。它具有标签式浏览&#xff0c;强大的文件搜索功能&#xff0c;多功能预览&#xff0c;高度可定制的界面&#xff0c;可选的双窗格以及一系列独特的方法&#xff0c;可以有效地自动执行频繁重复的任务。它快速&#xff0c;轻便…

【DCDC转换器】BUCK电路的演进

本文将是对BUCK型DCDC转换器的起步介绍&#xff0c;从BUCK电路模型的建立出发&#xff0c;可以对转换器原理有更清晰的认识。其次对三种不同类型开关电源转换器的原理进行计算&#xff0c;转换器的原理基本是类似的&#xff0c;相同的分析方法可以套用在其他模型上。最后引入了…

PHP基本语法(1)

前言&#xff1a;PHP是什么呢&#xff1f;PHP是一种后端开发用的语言&#xff0c;简单点说制作的网页分为静态和动态&#xff0c;静态网页用户体验性差&#xff0c;动态网页用户可以进行交互&#xff0c;而这种交互就需要PHP了。所以PHP他就是一门用于后端开发的语言。 注意&a…

操作系统实验1:操作系统的引导

操作系统实验1:操作系统的引导 现在是2022年12月22日&#xff0c;本人一如既往又是ddl战神&#x1f605; (虽然一周前刚立过flag) 两个月前就布置了的内容硬是拖到现在&#xff0c;这波实在是看不下去自己了&#x1f605;&#x1f605;&#x1f605; 拖到了ddl的最后一天&…