二分答案做法,蒟蒻爆0求调
  • 板块B3629 吃冰棍
  • 楼主WPL0216
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/6/27 22:03
  • 上次更新2024/6/28 11:07:14
查看原帖
二分答案做法,蒟蒻爆0求调
778449
WPL0216楼主2024/6/27 22:03

第一个样例过了,不知道是不是瞎猫碰到死耗子

//C++
#include<bits/stdc++.h>
using namespace std;
int n,l,r,mid,ans,g,n2,sum;
int num(int y){//吃多少 
	n2+=y/3;//吃多少 
	if(n2>=n){
		return true;//超过或=需求,返回真 
	}
}
int check(int x){//木棒数 
	if(g<3) return num(sum);//临界条件 
	g=x/3+x%3;//每一次换的 
	sum+=x/3+x%3;//所有的木棍总数 
	check(g/3);//递归 
}
int main(){
	cin>>n;
	if(n==1||n==2||n==3){//不需要占便宜 
		cout<<n;
	}else{//需要占便宜 
		l=4;r=n;//左右点赋值 
		while(l<r){
			mid=l+r>>1;//中间点 
			n2+=mid;//先加上初始的 
			if(num(mid)==true){//如果能吃够 
				r=mid;//再往小找找 
				ans=mid;//先存下答案 
			}else{
				l=mid;//不行就往大找找 
			} 
		}
	} 
	cout<<ans;//输出答案 
	return 0;
}
2024/6/27 22:03
加载中...