AtCoder Beginner Contest 363(A~D题)

news2024/11/15 13:30:31

A - Piling Up

 思路:

我们只需要找到下一阶段的下限。a / 100 是本阶段+1 变成下一阶段,再 * 100变成下限,再与原来的相减即可。

代码:

#include<bits/stdc++.h>
using namespace std;
#define N 200010
typedef long long ll;
typedef unsigned long long ull;
ll n, m, h, k, t, x, y, z;
ll a, b, c, d, mod = 998244353;
ll ans, num, sum1=0, sum, sum2=0, cnt, maxx, minn = 1e9;
ll f1[N], f2[N], dp[N], an[N];
bool flag, vis[N];
string s,s1,s2;
map<ll, ll>mp;
int main()
{
    cin >> n;
    if (n % 100 == 0)
    {
        cout << "100\n";
        return 0;
    }
    else
    {
        k = n / 100;
        k = (k + 1) * 100;
        cout << k - n << "\n";
    }
	return 0;
}

B - Japanese Cursed Doll

思路:

将L𝐿从小往大排序,那么只需要第n−P+1𝑛−𝑃+1大的数满足条件即可,假设这个数是a𝑎。因此,只需要计算T−a𝑇−𝑎即可。注意,如果这个数是负数,意味着初始时就满足条件,此时要输出00。

代码:

#include<bits/stdc++.h>
using namespace std;
#define N 200010
typedef long long ll;
typedef unsigned long long ull;
ll n, m, h, k, t, x, y, z;
ll a, b, c, d, mod = 998244353;
ll ans, num, sum1=0, sum, sum2=0, cnt, maxx, minn = 1e9;
ll f1[N], f2[N], dp[N], an[N];
bool flag, vis[N];
string s,s1,s2;
map<ll, ll>mp;
bool cmp(ll x, ll y) {
	return x > y;
}
int main()
{
	ll p;
	sum = ans = 0;
	cin >> n >> t >> p;
	for (int i = 1; i <= n; i++)
		cin >> dp[i];
	sort(dp + 1, dp + n + 1, cmp);
	for (int i = 1; i <= n; i++) {
		if (sum >= p)
			break;
		if (dp[i] >= t)
			sum++;
		else {
			ans = max(ans, t - dp[i]);
			sum++;
		}
	}
	cout << ans << endl;
	return 0;
}

C - Avoid K Palindrome 2 

 

 思路:

注意数据范围,完全可以依次枚举每一个排列,可以使用next_permutation函数。接着暴力判断是否拥有回文子串即可。

代码:

#include<bits/stdc++.h>
#include <unordered_map>
using namespace std;
#define N 200010
typedef long long ll;
typedef unsigned long long ull;
ll n, m, h, k, t, x, y, z;
ll a, b, c, d, mod = 998244353;
ll ans, num, sum1 = 0, sum, sum2 = 0, maxx, minn = 1e9;
ll f1[N], f2[N], dp[N], an[N], cnt[N];
bool flag, vis[N];
string s, s1, s2;
map<string, ll>mp;
bool cmp(ll x, ll y) {
	return x > y;
}
void solve() {
	cin >> n >> m;
	cin >> s;
	ans = 0;
	sort(s.begin(), s.end());
	do {
		flag = true;
		for (int i = 0; i + m - 1 < n; i++) {
			bool f = true;
			for (int j = 0; j < m; j++) {
				if (s[i + j] != s[i + m- j - 1])
					f = false;
			}
			if (f) flag = false;
		}
		if (flag)
			ans++;
	} while (next_permutation(s.begin(), s.end()));
	cout << ans << endl;
}
int main()
{
	solve();
	return 0;
}

D - Palindromic Number 

 

思路:

回文数只需要考虑前一半就可以构造。枚举长度,首先计算出答案回文数的长度。通过枚举和减法可以计算出是当前长度下第k𝑘大的回文数。而前一半就是顺序的,第k𝑘大就是当前长度的数的第k𝑘大,这个很好求。接下来只需要构成回文,直接输出即可。 

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
map<int, int>mp;
const int N = 2e6 + 10;
long long sum[60], a[60];
long long n;
int ans[1010], len, b[1010];
string s,s1,s2;
bool cmp(ll x, ll y) {
	return x > y;
}
int mod(string a, ll b)
{
    ll n = 0;
    for (int i = 0; i < a.size(); i++)  n = (n * 10 + (a[i] - '0')) % b;
    return n;
}
string gcd(string a, ll b)
{
    while (b != 0)
    {
        ll temp = b;
        b = mod(a, b);
        a = to_string(temp);
    }
    return a;
}
inline int gcd1(int a, int b)
{
    while (b ^= a ^= b ^= a %= b);
    return a;
}
inline int gcd2(int a, int b)
{
    if (b) while ((a %= b) && (b %= a));
    return a + b;
}
int lcm1(int a, int b) {
    return a * b / gcd1(a, b);
}
ll pow(int x) {
    ll res = 1;
    for (int i = 1; i <= x; i++)
        res *= 10;
    return res;
}
int main()
{
    for (int i = 1; i <= 37; i++) {
        int xx = ((i + 1) / 2 - 1);
        a[i] = 1LL * 9 * pow(xx);
        sum[i] = sum[i - 1] + a[i];
    }
    cin >> n;
    if (n <= 1)
    {
        cout << "0" << endl;
        return 0;
    }
    n -= 1;
    int pos = lower_bound(sum + 1, sum + 38, n) - sum;
    if (n == sum[pos - 1])
        pos--;
    while (n) {
        b[++len] = n % 10;
        n /= 10;
    }
    for (int i = 1, j = len; i <= len; i++, j--)
        ans[i] = b[j];
    ans[1]--; ans[len]++;
    if (ans[1] == 0 && ans[2] == 0)ans[2] = 9;
    int now = len;
    while (ans[now] >= 10) {
        ans[now - 1] += ans[now] / 10;
        ans[now] %= 10;
        now--;
    }
    int l = len, r = len + 1;
    if (pos % 2 == 1)l--;
    while (l >= 1) {
        ans[r] = ans[l];
        l--; r++;
    }
    l = 1, r--;
    while (ans[l] == 0)
        l++;
    while (ans[r] == 0)
        r--;
    for (int i = l; i <= r; i++)
        cout << ans[i];
	return 0;
}

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

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

相关文章

Biomimetics 综述分享:肌电假肢手的交互操作控制综述

近些年假肢灵巧手成为了热点研究方向。此前有综述研究回顾了包括基于表面肌电信号的预测连续上肢运动的方法、基于表面肌电信号的多任务人机交互应用&#xff0c;以及肌电控制中的各种性能指标。近期&#xff0c;期刊Biomimetics&#xff08;JCR Q1&#xff09;发表了“面向肌电…

定时器+外部中断实现NEC红外线协议解码

一、前言 1.1 功能介绍 随着科技的进步和人们生活水平的提高&#xff0c;红外遥控器已经成为了日常生活中不可或缺的电子设备之一&#xff0c;广泛应用于电视、空调、音响等多种家电产品中。 传统的红外遥控器通常只能实现预设的有限功能&#xff0c;无法满足用户对设备更加智…

Mac 下华为鸿蒙 :DevEco Studio 开发工具下载

1.登录&#xff1a;华为开发者中心--开发--下载工具DevEco Studio 2.下载完成后 &#xff0c;安装&#xff0c;并创建一个新项目。 3.Tools --点击SDK Manager 下载SDK: 如果报&#xff1a;淘宝镜像源错误&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_H…

Threejs——辅助视图的旋转轴

官网的代码&#xff1a;link 实现这个效果 import {CylinderGeometry,CanvasTexture,Color,Euler,Mesh,MeshBasicMaterial,Object3D,OrthographicCamera,Quaternion,Raycaster,Sprite,SpriteMaterial,SRGBColorSpace,Vector2,Vector3,Vector4 } from three;class ViewHelper …

FP5207+音频功率放大器的组合解决方案-适用于便携式音频播放器、无线耳机、智能音箱和车载音响系统等高质量音频输出需求的产品,以提高电池供电的效率和输出功率

随着消费者对智能家居的需求增长&#xff0c;智能音响市场成为重要增长点。同时&#xff0c;音响技术也在不断发展&#xff0c;音响及扬声器的功能和性能不断提升。 蓝牙音箱&#xff0c;这类音箱供电是以锂电池为主&#xff0c;一般选用内置升压的音频功放芯片&#xff0c;音响…

Java聚合快递系统对接云洋系统快递小程序系统源码

&#x1f680; "聚合快递系统"无缝对接云洋系统&#xff0c;快递小程序新体验&#xff01;&#x1f4e6; &#x1f69a; 开篇&#xff1a;快递管理新纪元&#xff0c;一键接入云洋系统&#xff01; 你是否还在为繁琐的快递管理而头疼&#xff1f;多个快递公司账号切…

构建一个具有深色模式的简单React Web应用

在当今的Web开发世界里,创建一个既美观又功能丰富的用户界面是至关重要的。在本文中,我们将探讨如何使用React构建一个简单但功能强大的Web应用,它包含导航栏、内容展示区域和深色模式切换功能。 项目概述 我们的目标是创建一个具有以下特性的Web应用: 左侧导航栏,包含四个链…

JavaScript(12)——内置对象

JavaScript内部提供的对象&#xff0c;包含各种属性和方法给开发者调用。 Math Math对象是JavaScript提供的一个“数学”对象 包含的方法有&#xff1a; random:生成0-1之间的随机数 ceil&#xff1a;向上取整 floor&#xff1a;向下取整 max&#xff1a;找最大数 min&#…

Leetcode 721.账户合并(hash+dfs)☆

思路&#xff1a; 最核心的地方在于如何合并&#xff1f;这里是通过具有相同的email进行账户的合并&#xff0c;这个相同的email类似于图中的共同节点将两个账户连接起来&#xff0c;所以将原来 账户名 -> 邮件1 邮件2.。。变成hash 邮件1 ->账户id1&#xff0c;账户id2…

2024年jupyter notebook如何复制单元格cell输出的图片

背景 之前使用jupyter notebook复制图片一直是正常&#xff0c;右键就行&#xff0c;可以找到复制图片或者另存为的选项。 但是最近重新安装了anaconda&#xff0c;发现jupyter notebook升级了&#xff0c;和原来的界面不一样了。 如果有一个图片&#xff0c;我们右键&#x…

Concat() Function-SQL-字符串拼接函数

Concat() Function-SQL 在SQL中&#xff0c;CONCAT() 函数用于将两个或多个字符串连接在一起。 不同数据库管理系统可能有些许差异&#xff0c;但基本用法和语法通常是相似的。 语法 CONCAT(string1, string2, ...)string1, string2, …: 这些是需要连接的字符串参数。可以…

快速排序【示例】

冒泡排序可以说是我们学习的第一个真正的排序算法&#xff0c;并且解决了桶排序浪费 空间的问题&#xff0c;但在算法的执行效率上却牺牲了很多&#xff0c;它的时间复杂度达到了 O(N^2)。假如我 们的计算机每秒钟可以运行 10 亿次&#xff0c;那么对 1 亿个数进行排序&#xf…

弹性布局 flex layout HTML CSS

文章目录 效果图参考文档代码 效果图 其实弹性布局的好处是&#xff1a;当网页大小变化&#xff08;如窗口resize&#xff09;时&#xff0c;处于弹性容器(flex container)中的弹性元素(flex item) 之间的距离也会变化。 需要特别注意的是&#xff1a; 弹性布局的主要CSS如下。…

缺省路由学习笔记

1.缺省路由 缺省路由是一种特殊的路由&#xff0c;当报文没有在路由表中找到匹配的具体路由表项时才使用的路由。如果报文的目的地址不能与路由表的任何目的地址相匹配&#xff0c;那么该报文将选取缺省路由进行转发。缺省路由是“替补”。 缺省路由在路由表中的形式为0.0.0.…

汽车长翅膀:GPU 是如何加速深度学习模型的训练和推理过程的?

编者按&#xff1a;深度学习的飞速发展离不开硬件技术的突破&#xff0c;而 GPU 的崛起无疑是其中最大的推力之一。但你是否曾好奇过&#xff0c;为何一行简单的“.to(‘cuda’)”代码就能让模型的训练速度突飞猛进&#xff1f;本文正是为解答这个疑问而作。 作者以独特的视角&…

【ffmpeg命令入门】实现画中画

文章目录 前言画中画是什么画中画的外观描述效果展示为什么要用画中画应用场景示例 使用FFmpeg添加画中画示例命令参数解释调整嵌入视频的位置调整嵌入视频的大小处理音频 总结 前言 FFmpeg 是一款强大的多媒体处理工具&#xff0c;广泛用于音视频的录制、转换和流处理。它不仅…

Unity ShaderLab基础

[原文1] [参考2] 一 基础知识 1. 1 着色器语言分类: 语言说明HLSL基于 OpenGL 的 OpenGL Shading LanguageGLSL基于 DirectX 的 High Level Shading LanguageCGNVIDIA 公司的 C for GraphicShader LabUnity封装了CG,HLSL,GLSL的Unity专用着色器语言,具有跨平台,图形化编程,便…

你的手机照片,我的使命,3个方法恢复删除的照片

照片不仅仅是记录生活瞬间的方式&#xff0c;它们是时间的印记&#xff0c;也是记忆的碎片。但当我们不小心删除&#xff0c;那些画面就如同盛夏的风&#xff0c;消失在秋天的旷野里。别担心&#xff0c;小编带着3个秘密武器来啦&#xff01;让我们一起开展一场与时间的赛跑&am…

【vluhub】log4j注入漏洞 CVE-2021-44228

LOG4介绍 是一个用Java编写的可靠&#xff0c;快速和灵活的日志框架&#xff08;API&#xff09;&#xff0c;它在Apache软件许可下发布 log4j存在远程代码执行漏洞、受影响版本2.x 部署环境 攻击机环境&#xff1a;192.168.3.180 kail环境&#xff1a;192.168.203.12【NAT…