Educational Codeforces Round 135 (Rated for Div. 2)C. Digital Logarithm(思维)

文章目录

题目链接

C. Digital Logarithm

题意

给两个长度位 n n n的数组 a a a、 b b b,一个操作 f f f

定义操作 f f f为, a [ i ] = f ( a [ i ] ) = a [ i ] a[i]=f(a[i])=a[i] a[i]=f(a[i])=a[i]的位数

求最少多少次操作可以使 a 、 b a、b a、b两个数组变得完全相同

题解

性质:

对于任何数,经过两次操作我们一定可以让其变为 1 1 1,所以答案小于等于 2 n 2n 2n

然后我们考虑如何求最少的操作次数,很自然的去考虑贪心,对于相同的数我们不去操作,只取操作不同的数,这些不同的数一定需要进行一次操作,然后操作完一次之后所有的数都被限制到 [ 1 , 9 ] [1,9] [1,9]之内,我们只需要统计 [ 2 , 9 ] [2,9] [2,9]之内的数还需要操作几次即可。

代码

cpp 复制代码
#include <bits/stdc++.h> 
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back

using namespace std;
const int N=1e5+10;


void solve()
{
	string s;cin>>s;
	if(s.find('0')!=s.npos){
		cout<<"YES"<<endl;
		cout<<0<<endl;
		return;
	}
	rep(i,0,s.size()-1){
		rep(j,i+1,s.size()-1){
			rep(k,j+1,s.size()-1){
				int a=s[i]-'0',b=s[j]-'0',c=s[k]-'0';
				if((a*100+b*10+c)%8==0){
					cout<<"YES"<<endl;
					cout<<s[i]<<s[j]<<s[k]<<endl;
					return;
				}
			}
			int a=s[i]-'0',b=s[j]-'0';
			if((a*10+b)%8==0){
				cout<<"YES"<<endl;
				cout<<s[i]<<s[j]<<endl;
				return;
			}
		}
		int c=s[i]-'0';
		if(c%8==0){
			cout<<"YES"<<endl;
			cout<<s[i]<<endl;
			return;
		}
	}
	cout<<"NO"<<endl;
}

signed main(){
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//   	freopen("1.in", "r", stdin);
  	int _;
//	cin>>_;
//	while(_--)
	solve();
	return 0;
}
相关推荐
啊阿狸不会拉杆几秒前
《数字图像处理》第7章:小波变换和其他图像变换
图像处理·人工智能·python·算法·机器学习·计算机视觉·数字图像处理
LinHenrY12275 分钟前
初识C语言(文件操作)
c语言·windows·microsoft
梅孔立7 分钟前
【实用教程】python 批量解析 EML 邮件文件 存成txt ,可以利用 AI 辅助快速生成年终总结
开发语言·python
rannn_1119 分钟前
【Git教程】概述、常用命令、Git-IDEA集成
java·git·后端·intellij-idea
我家领养了个白胖胖10 分钟前
向量化和向量数据库redisstack使用
java·后端·ai编程
苹果醋321 分钟前
Java设计模式实战:从面向对象原则到架构设计的最佳实践
java·运维·spring boot·mysql·nginx
BoBoZz1928 分钟前
ExtractSelectionUsingCells选择和提取三维模型中的特定单元(Cell)
python·vtk·图形渲染·图形处理
智者知已应修善业29 分钟前
【删除有序数组中的重复项 II之O(N)算法】2024-1-31
c语言·c++·经验分享·笔记·算法
郑州光合科技余经理30 分钟前
实战分享:如何构建东南亚高并发跑腿配送系统
java·开发语言·javascript·spring cloud·uni-app·c#·php
韩立学长32 分钟前
【开题答辩实录分享】以《跳蚤市场二手物品交易推荐平台》为例进行选题答辩实录分享
python·django