当前位置:网站首页>(2022牛客多校四)K-NIO‘s Sword(思维)
(2022牛客多校四)K-NIO‘s Sword(思维)
2022-08-01 04:47:00 【AC__dream】
题目:
样例输入:
4
样例输出:
4
题意:玩家初始有一把攻击力为0的剑,需要依次击杀n个敌人,仅当攻击力模n与i同余才能击杀第i个敌人。而且只能从前往后击杀敌人,也就是说,击杀编号为i的敌人前一定要先击杀编号为i-1的敌人。玩家可以升级剑,每次升级就是将剑的当前攻击力乘以10再加上0~9的一个数,问要想击杀所有的敌人至少要几次升级。
分析:假如我们当前已经击杀了第i个敌人,也就是说现在我们的剑的攻击力ai=k*n+i,我们可以直接将其等价为i,因为比如我们对剑升级了x次,那么剑的攻击力就变为(k*n+i)*10^x+y(y为一个x位数),等价于k*n*10^x+(i*10^x+y),那么在modn意义下有没有前面的k*n是没有什么区别的,也就是说,我们直接把击杀第i个敌人后的攻击力看成i即可。现在我们击杀了第i个敌人,也就是说我们现在剑的攻击力是i,那么假设我们升级x后可以击杀第i+1个敌人,也就是说存在一个x位数y使得(i*10^x+y)%n=(i+1)%n,那么就等价于(i+1-i*10^x)%n=y%n,由于y是一个任意的x位数,那么我们只要判断一下(i+1-i*10^x)%n是不是一个x位数即可(可以有前导0),判断的复杂度就是O(1)的,由于n的位数最大是6,所以我们最多需要升级的次数也是6,所以直接暴力判断即可:
需要注意的一个点是n=1时需要特判!
下面是代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<map>
#include<queue>
#include<vector>
#include<cmath>
using namespace std;
const int N=1e6+10;
int p10[15]={1,10,100,1000,10000,100000,1000000,10000000};
int cnt(long long x)
{
int ans=0;
while(x)
{
ans++;
x/=10;
}
return ans;
}
int main()
{
int n;
cin>>n;
if(n==1)
{
printf("0");
return 0;
}
int ans=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=6;j++)
{
long long x=((i+1-1ll*i*p10[j])%n+n)%n;
if(cnt(x)<=j)
{
ans+=j;
break;
}
}
}
printf("%d",ans);
return 0;
}
边栏推荐
- Advice given by experts with four years of development experience in Flutter tutorial
- 动态规划 01背包
- mysql中解决存储过程表名通过变量传递的方法
- Flink 1.13 (8) CDC
- The kernel's handling of the device tree
- TIM登陆时提示00001(TIM00001)
- Progressive Reconstruction of Visual Structure for Image Inpainting 论文笔记
- 6-23漏洞利用-postgresql代码执行利用
- Mysql基础篇(约束)
- ModuleNotFoundError: No module named ‘tensorflow.keras‘报错信息的解决方法
猜你喜欢
Visual Studio提供的 Command Prompt 到底有啥用
typescript25-类型断言
MySQL4
认真对待每一个时刻
Dry goods!How to Construct SRv6-TE Performance Test Environment Using Instrumentation
博客系统(完整版)
typescript24-类型推论
【kali-信息收集】枚举——DNS枚举:DNSenum、fierce
风险策略调优中重要的三步分析法
This article takes you to understand the past and present of Mimir, Grafana's latest open source project
随机推荐
Difference Between Compiled and Interpreted Languages
怀念故乡的月亮
雪糕和轮胎
律师解读 | 枪炮还是玫瑰?从大厂之争谈元宇宙互操作性
开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
typescript21-接口和类型别名的对比
程序员代码面试指南 CD15 生成窗口最大值数组
MySQL-数据操作-分组查询-连接查询-子查询-分页查询-联合查询
lambda
PAT乙级 1001 害死人不偿命的(3n+1)猜想
深圳某游戏研发公司给每个工位都装监控,网友:堪比坐牢!
状态压缩dp
产品经理访谈 | 第五代验证码的创新与背景
Message queue design based on mysql
罗技鼠标体验记录
Software Testing Interview (3)
Article summary: the basic model of VPN and business types
在沈自所的半年总结
Character encoding and floating point calculation precision loss problem
Typescript22 - interface inheritance