cf1004.div2.C

https://codeforces.com/contest/2067/problem/C

#include<bits/stdc++.h>
using namespace std;
//暴力
long long chm[11]={0,9,99,999,9999,99999,999999,9999999,99999999,999999999,9999999999};
long long mi[11]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000,10000000000};
long long n,t,stp=10;
int xx=1;
int pos(long long x,long long y){//从右往左数位数
	long long a,b;
	a=x%mi[y];
	b=x%mi[y-1];
	if(x/mi[y-1]<1)return 10;
	else return (a-b)/mi[y-1];
}//返回位数
long long a[10008];
int main(){
	//freopen("in.txt","r",stdin); 
	//freopen("out.txt","w",stdout); 
	cin>>t;long long ans,stp1;
	while(t--){
		cin>>n;stp=10;
		for(int i =1;i<=10;i++){
			ans=0;xx=1;stp1=0;long long flag = n;
			while(xx){
				for(int j=1;j<=10;j++){
					
					if(pos(flag,j)==7){ans=1;}
						
					
				}
				if(ans==0){stp1++;flag+=chm[i];}
				else {stp=min(stp,stp1);xx=0;}
				
			}
			//cout<<ans<<" "<<stp<<endl;
		}cout<<stp<<endl;

	}
	return 0;
}

打了我2个小时,用贪心即可,我也不会证。
打暴力很多坑(其他方法我想不出来)记得开longlong,对每个9,99,99….加法的时候记得多开几个循环,对位数也对开几个循环,嗯就这艹不对,for(j)将j开到11就不行了,10正好,草拟吗不管了,能过就行

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇