AtCoder Beginner Contest 192 A~D题解

数仓 - 促销敏感度、评论敏感度 1. 促销敏感度 步骤1. 首先按照最后一次下单时间及有无复购情况将用户分为四大群体: 近一年有购物行为且复购的用户 -- L1 (今年复购用户) 近一年有购物行为但无复购的用户 --L2 (今年一单购用户) 最后一次下单时间在1年之前且有复购的用户 --L3 (今年无购且只有一单用户) 最后一次下单时间在1年之前但无复购的用户 -- L4 (今年无购多单用户) 步骤2. 每一类用户群再根据优惠订单占比、每单优惠金额占比的平均值、优惠金额这三个指标进行k-means聚类,分为: 非常敏感 - 阅读详情

A - Star

题目大意

下一个大于 X X X的 100 100 100的倍数与 X X X的差是多少?
1 ≤ X ≤ 1 0 5 1\le X\le 10^5 1≤X≤105

输入格式

X X X

输出格式

输出答案。

样例

X X X输出
140 140 140 60 60 60
1000 1000 1000 100 100 100

分析

下一个大于 X X X的 100 100 100的倍数是 ( ⌊ X / 100 ⌋ + 1 ) × 100 (\lfloor X/100\rfloor+1)\times 100 (⌊X/100⌋+1)×100。所以,这题我们直接输出 ( ⌊ X / 100 ⌋ + 1 ) × 100 − X (\lfloor X/100\rfloor+1)\times 100-X (⌊X/100⌋+1)×100−X。

代码

#include <cstdio>
using namespace std;

int main()
{
	int x;
	scanf("%d", &x);
	printf("%d\n", (x / 100 + 1) * 100 - x);
	return 0;
}

B - uNrEaDaBlE sTrInG

题目大意

当一个字符串的奇数位置上(第 1 1 1位、第 3 3 3位、第 5 5 5位……,下标从 1 1 1开始)都是小写英文字母且偶数位置上(第 2 2 2位、第 4 4 4位、第 6 6 6位……)都是大写英文字母时,它是一个难以阅读的字符串。
字符串 S S S难以阅读吗?

1 ≤ ∣ S ∣ ≤ 1000 1\le |S|\le 1000 1≤∣S∣≤1000
S S S由大写字母和小写字母组成。

输入格式

S S S

输出格式

如果 S S S难以阅读,输出Yes;否则,输出No。

样例

S S S输出
dIfFiCuLt \text{dIfFiCuLt} dIfFiCuLtYes
eASY \text{eASY} eASYNo
a \text{a} aYes

分析

这题只要照题目说的做即可。

代码

#include <cstdio>
using namespace std;

int main()
{
	char c;
	int n = 0;
	while((c = getchar()) != '\n')
	{
		if(n++ % 2 == 0)
		{
			if(c < 'a' || c > 'z')
			{
				puts("No");
				return 0;
			}
			continue;
		}
		if(c < 'A' || c > 'Z')
		{
			puts("No");
			return 0;
		}
	}
	puts("Yes");
	return 0;
}

C - Kaprekar Number

题目大意

对于一个自然数 x x x,我们对 g 1 ( x ) , g 2 ( x ) , f ( x ) g1(x),g2(x),f(x) g1(x),g2(x),f(x)的定义如下:

  • g 1 ( x ) = x g1(x)=x g1(x)=x按十进制位降序排序的结果
  • g 2 ( x ) = x g2(x)=x g2(x)=x按十进制位升序排序的结果
  • f ( x ) = g 1 ( x ) − g 2 ( x ) f(x)=g1(x)-g2(x) f(x)=g1(x)−g2(x)

举几个例子: g 1 ( 314 ) = 431 , g 2 ( 3021 ) = 123 , f ( 271 ) = 721 − 127 = 594 g1(314)=431,g2(3021)=123,f(271)=721-127=594 g1(314)=431,g2(3021)=123,f(271)=721−127=594。请注意,前导 0 0 0会被忽略!
给你两个数 N , K N,K N,K,请进行 K K K次 N : = f ( N ) N:=f(N) N:=f(N)这个操作,并输出最终的 N N N。

0 ≤ N ≤ 1 0 9 0\le N\le 10^9 0≤N≤109
1 ≤ K ≤ 1 0 5 1\le K\le 10^5 1≤K≤105

输入格式

N   K N~K N K

输出格式

输出一行,即最终的 N N N。

样例

N N N K K K输出
314 314 314 2 2 2 693 693 693
1000000000 1000000000 1000000000 100 100 100 0 0 0
6174 6174 6174 100000 100000 100000 6174 6174 6174

分析

这题在计算 f ( n ) f(n) f(n)时可以使用一个桶来排序 n n n,从而得到 O ( K ) \mathcal O(K) O(K)的总复杂度。

代码

#include <cstdio>
#include <set>
#include <vector>
using namespace std;

int cnt[10];

int f(int x)
{
	for(int i=0; i<10; i++) cnt[i] = 0;
	while(x > 0)
	{
		cnt[x % 10] ++;
		x /= 10;
	}
	int g1 = 0, g2 = 0, t = 1;
	for(int i=0; i<10; i++)
		while(cnt[i]--)
		{
			g1 += i * t, g2 = g2 * 10 + i;
			t *= 10;
		}
	return g1 - g2;
}

int main()
{
	int n, k;
	scanf("%d%d", &n, &k);
	while(k--) n = f(n);
	printf("%d\n", n);
	return 0;
}

D - Base n

题目大意

给你一个大整数 X X X(别想得太美,long long存不下)和整数 M M M。我们设 d d d为 X X X中最大的位上的十进制数。
有多少个符合“将 X X X看成(不是转换成) n n n进制的数的十进制表示不超过 M M M”这个条件的 n n n?

X X X是一个没有前导 0 0 0的正整数。
X X X在十进制表示下至少有 1 1 1位、至多有 60 60 60位。
1 ≤ M ≤ 1 0 18 1\le M\le 10^{18} 1≤M≤1018

输入格式

X X X
M M M

输出格式

输出一行,即符合条件的 n n n的个数。

样例

略,请自行前往AtCoder查看

分析

很明显,这题 n n n的范围是 d < n ≤ M d<n\le M d<n≤M。我们可以用二分找到最大可能的 N N N,再用这个数减去 d d d即可。

代码

写这份代码,需要注意如下三个点:

  • 二分的边界
  • 二分的判断
  • 大整数的处理

废话不多说,我们直接上代码! ↓        ↓        ↓ \downarrow~~~~~~\downarrow~~~~~~\downarrow ↓      ↓      ↓

#include <cstdio>
using namespace std;

typedef unsigned long long ULL;

char x[65];
ULL m;

inline void setmax(int& x, int y)
{
	if(y > x) x = y;
}

inline bool check(const ULL& base)
{
	// Returns: (x -> base) <= m?
	ULL t = 0ULL;
	for(int i=0; x[i]; i++)
	{
		if(t > m / base)
			return false;
		t *= base;
		if((t += x[i] - '0') > m)
			return false;
	}
	return true;
}

int main()
{
	scanf("%s%llu", x, &m);
	int d = 0;
	for(int i=0; x[i]; i++)
		setmax(d, x[i] - '0');
	if(x[1] == '\0')
	{
		puts(d > m? "0": "1");
		return 0;
	}
	ULL l = d, r = m;
	while(l < r)
	{
		ULL mid = l + r + 1ULL >> 1ULL;
		if(check(mid)) l = mid;
		else r = mid - 1ULL;
	}
	printf("%llu\n", l - d);
	return 0;
}
基于STM32设计的电能质量控制系统_353 本项目基于STM32F103RCT6微控制器设计了一套电能质量控制系统,实现了对火焰、烟雾、环境温湿度、电压、电流及功率等多项参数的实时监测与报警。系统通过MQ2烟雾传感器、火焰传感器、SHT30温湿度传感器及电力参数采集模块采集数据,采用高电平触发有源蜂鸣器进行异常报警。采集的数据通过ESP8266无线模块以AP+TCP模式上传至基于Qt开发的手机APP和电脑上位机,实现远程实时监控和历史数据管理。系统配备1.44寸LCD显示屏,实现本地数据显示。软件采用Keil5开发,采用寄存器编程方式,提高系统响应速 阅读详情

相关推荐

软件工程:数据字典

数据字典

永远怀着至诚之心拥抱世界 4275

AtCoder Beginner Contest 192 简单题解(AC了 A~D,缺 E~F)

ABC192 https://atcoder.jp/contests/abc192/tasks。 A题:Star 题目链接,https://atcoder.jp/contests/abc192/tasks/abc192_a。 题解 友善签到题。一个简单的数学题。获得 ans=X%100 余数,如果 ans 为零,则输出 100;否则输出 100-ans。 AC 参考代码 #include <bits/stdc++.h> using namespace

努力中的老周的专栏 1746

金蝶云ERP远程办公指南:零公网IP实现安全内网穿透访问

本文详细介绍了如何利用内网穿透技术,在无需公网IP和复杂路由器设置的情况下,安全远程访问内网部署的金蝶云ERP系统。通过使用cpolar工具,逐步指导用户创建加密隧道、配置固定域名,并实现管理中心与数据中心的远程登录,有效解决了企业员工在外出或居家办公时的核心业务系统访问难题。

weixin_29229261的博客 269

AtCoder Beginner Contest 194 ----- C(思维)

We can find the answer fast enough without the constraint|Ai|≤200|Ai|≤200. ∑ni=2∑i−1j=1(Ai−Aj)2∑i=2n∑j=1i−1(Ai−Aj)2 =12(∑ni=1∑nj=1(Ai−Aj)2)=12(∑i=1n∑j=1n(Ai−Aj)2)(Because(Ai−Ai)2=0(Ai−Ai)2=0) =12(∑ni=1∑nj=1(A2i+A2j−2AiAj))=12(∑i=1n∑j=1n(Ai2+Aj2−2AiAj)) ...

m0_56246955的博客 231

告别第三方插件:官方Fused Library如何重塑Android库的合并与发布流程

本文详细介绍了Android官方推出的Fused Library如何替代第三方fat-aar插件,优化Android库的合并与发布流程。通过原生支持、智能依赖管理等优势,Fused Library解决了版本兼容性、依赖传递等核心痛点,提供了更稳定高效的开发体验。文章还提供了迁移实操指南和工程实践建议,帮助开发者顺利过渡到官方方案。

weixin_42561040的博客 254

SMILES:化学结构的线性表示方法

SMILES:化学结构的线性表示方法

jasminefeng的博客 1万+

AtCoder Beginner Contest 194 E - Mex Min

题意大概: 给一个不超过1.5×1061.5\times10^61.5×106的数组A1A_1A1​到AiA_iAi​长度为mmm,和一个nnn,给出每连着的nnn个数中没出现的最小数中的最小数。 思路: 一看这题不就滑动窗口(在这里有详lue解)么!!!在其他oj上粘过来之后改了改就直接交了,结果就 又看了看题后注意到只要是没出现的数中的最小数就行。数据也不大,开个数组记录前nnn个数中每个数的出现次数并找出没出现的数中的最小数,然后双指针一个指头一个指尾,每次把A尾A_尾A尾​的出现次数减一,A头A_

ydsrwex的博客 493

封神台靶场,为了小芳,冲之——cookie注入

第二个靶场 打开网站 找一下注入点 一般在新闻这种里面点开看看 先判断是否存在注入 有waf 尝试了很多方法绕过都没成功,/and/,aandnd,AnD等一系列都没绕过去,乌鸡鲅鱼 删掉id=169 发现 然后判断cookie注入 在搜索框输入 Javascript:alert(document.cookie=”id=”+escape(‘169’)); 然后弹窗了(其中 “id=” 取决URL中的id= escape中的数值也是URL中id=的值)返回刚刚的页面,把ID删除后一样能正常显示。说明服务器能

Wubuqing的博客 653

AtCoder Beginner Contest 256

AtCoder Beginner Contest 256

青少年趣味编程 788

Scratch离线版部署指南:解决资源缺失与页面显示异常问题

本文提供了一份详尽的Scratch离线版部署指南,旨在解决网络依赖导致的资源缺失与页面显示异常问题。通过从基础文件获取、自动化资源抓取到生产环境部署的完整流程,帮助教育工作者和开发者在无网络环境下搭建功能完整的本地Scratch编辑器,确保编程教学的顺利进行。

wine的专栏 1263

神经形态芯片:IBM TrueNorth技术详解以及应用案例

2018年的一项演示中,机器人使用TrueNorth处理了复杂的路径规划,功耗仅为传统系统的1/10。它通过模仿人脑的结构,解决了传统芯片在功耗和并行性上的痛点,并在图像识别、物联网和机器人等领域展现了强大潜力。:不同于传统芯片的时钟驱动,TrueNorth是事件驱动的。例如,工厂中的振动传感器使用TrueNorth检测设备故障的早期迹象,实现了更高效的维护策略,避免了停机时间。:在医疗领域,TrueNorth可以用于可穿戴设备,比如一个智能助听器,它能过滤噪音并增强特定声音,功耗低到可以用纽扣电池供电。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2477

AtCoder Beginner Contest 192

文章目录AtCoder Beginner Contest 192D - Base nE - Train**F - Potion** AtCoder Beginner Contest 192 D - Base n 题意: 给出n,m,设n中最大的数字为x,问在不同的进制(bas>x)下,小于等于m的不同的数有多少个 题解: 二分。 发现进制其实有单调性,进制越大,得到的值越大。那么我直接二分。然后需要特判下一位的情况。 代码: #include <bits/stdc++.h> using

m0_49959202的博客 270

Java炫酷烟花③(完整代码)

Java语言实现炫酷烟花动画的完整代码。 下载代码 下载链接:我是一只有趣的兔子,感谢你的喜欢。

AIGC 784

AtCoder Beginner Contest 194 C - Squared Error

传送门 看到别人的都是前缀和,我就来发一个不太主流的题解吧 观察发现,A的取值在[-200,200],这个区间不算大,因此就可以记录每一个值的个数,再通过排列组合的方式求解,通过i和j的值是否相等进行判断,然后求解 #pragma GCC optimize(2) #pragma GCC optimize(3,"Ofast","inline") #include <bits/stdc++.h> #define inf 0x7fffffff #define ll long long #define

lcl1234567890lcl的博客 400

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

AtCoder Beginner Contest 194 E. Mex Min

链接 https://atcoder.jp/contests/abc194/tasks/abc194_e 题意 定义 mex(x1,x2,…,xk)mex(x_1,x_2,\dots,x_k)mex(x1​,x2​,…,xk​) 为在 x1,x2,…,xkx_1,x_2,\dots,x_kx1​,x2​,…,xk​ 中未出现的最小自然数 求 min⁡i=0n−m[mex(ai+1,ai+2,…,ai+m)]\min_{i=0}^{n-m}{[mex(a_{i+1},a_{i+2},\dots,a_{i+m}

c4Lnn 的 优快云 博客 381

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AtCoder Beginner Contest 196 题解报告,AC了 A~E,缺 F

AtCoder Beginner Contest 196 https://atcoder.jp/contests/abc196/tasks。 A - Difference Max https://atcoder.jp/contests/abc196/tasks/abc196_a。 签到题,能看懂题目意思,应该就可以完成。给我们四个数字,找出一个 和,使得的结果最大。 由于这四个数据是不相关的,要最大,那么要求最大同时最小即可。 本题的数据非常小,用 int 即可。 #i...

努力中的老周的专栏 1196

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

AtCoder Beginner Contest 193 题解报告(先写 A ~ E,后面再写)

AtCoder Beginner Contest 193 https://atcoder.jp/contests/abc193/tasks。 A - Discount https://atcoder.jp/contests/abc193/tasks/abc193_a。 老样子,A题还是签到题。题目要求计算折扣,要求答案的精度在以上。因此我们只需要输出的时候保留的小数点位数足够多就可以达到要求,比如保留 18 位。 #include <iostream> #include <..

努力中的老周的专栏 934

AtCoder Biginner Contest 194 C.Squared Error

题目传送门 题目大意 给出n个数,求所有每两个数之间差的平方的和,即求 输入格式 第一行输入n(2<=n<=3e5)表示有n个数字,之后输入A1,A2,A3…An(|Ai|<=200)。 输出格式 输出结果 样例 输入1: 3 2 8 4 输出1: 56 输入2: 5 -5 8 9 -4 -3 输出2: 950 思路 如果是遍历每对数字然后进行相加,复杂度显而易见是O(N^2),一定会tle,atcoder官方放了两种解法,其中一种主要运用数学公式推导的方式简化原方程,使得复杂度降为O

Maly_gos的博客 279

atcoder ABC 192 做题记录

A :签到题 #include <bits/stdc++.h> #include <iostream> #include <cstring> #include <vector> #include <algorithm> #include <map> //#define x first //#define y second //The desire of his soul is the prophecy of his fate..

qq_53797590的博客 325

AtCoder Beginner Contest 194 A~E题解

ABC194 A~E 题解 A - I Scream B - Job Assignment C - Squared Error D - Journey E - Mex Min

天生我材必有用,千金散尽还复来。 8923

AtCoder Beginner Contest 192 D - Base n

D - Base n Input Input is given from Standard Input in the following format: X M Output Print the answer. Sample Input 1 22 10 Sample Output 1 2 Sample Input 2 999 1500 Sample Output 2 3 Sample Input 3 1000000000000000000000000000000000000000

weixin_46155777的博客 447

每日一刷atcoder开脑 abc151

abc151 简单题解,线性组合数

qq_41739081的博客 634

AtCoder题解——Beginner Contest 168——B - ... (Triple Dots)

题目相关 题目链接 AtCoder Beginner Contest 168 B题,https://atcoder.jp/contests/abc168/tasks/abc168_b。 Problem Statement We have a stringSconsisting of lowercase English letters. If the length ofSis at mostK, printSSwithout change. If the length ofSex...

努力中的老周的专栏 714

Atcoder Beginner Contest 271 A~E 题题解

Atcoder Beginner Contest 271 A~E 题题解

qq_61768466的博客 801

Atcoder Beginner Contest 271部分题解

Atcoder Beginner Contest 271

m0_51572183的博客 434

Atcoder Beginner Contest 271 C-F

abc271题解

qq_53774367的博客 633
上一篇: AtCoder Beginner Contest 191 A~D题解
下一篇: Caddi Programming Contest 2021 (AtCoder Beginner Contest 193) A~D题解
GoodCoder666
博客等级 码龄7年 2320粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值