TLE了#10,哪位大佬帮忙看一下
  • 板块P1582 倒水
  • 楼主chl090410
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/1/7 16:27
  • 上次更新2023/10/24 05:17:06
查看原帖
TLE了#10,哪位大佬帮忙看一下
324807
chl090410楼主2023/1/7 16:27
#include<bits/stdc++.h>
using namespace std;
int n,k,ejz[55],ejzzc[55],p,gd[55],ejzc,jilux;
void erjinzhi(int x){
	while(x>0){
		ejzzc[++p]=x%2;
		x/=2;
	}
	for(int i=1;i<=p;i++){
		ejz[p-i+1]=ejzzc[i];
	}
}
int qsort(int a,int b){
	int ans=1;
	while(b>0){
		if(b%2==1){
			ans*=a;
		}
		a*=a;
		b/=2;
	}
	return ans;
}
int jisuan(int x){
	int ans=0;
	for(int i=x-1;i>=1;i--){
		if(ejz[i]==0){
			ans+=qsort(2,p-i);
		}else{
			break;
		}
	}
	ans+=qsort(2,p-x);
	for(int i=x+1;i<=p;i++){
		if(ejz[i]==1){
			ans-=qsort(2,p-i);
		}
	}
	return ans;
}
int main(){
	scanf("%d%d",&n,&k);
	erjinzhi(n);
	for(int i=1;i<=p;i++){
		if(ejz[i]==1){
			ejzc++;
		}
		if(ejzc>k){
			cout<<jisuan(i);
			return 0;
		}
	}
	cout<<0;
	return 0;
}
2023/1/7 16:27
加载中...