贪心 30pts 求调
查看原帖
贪心 30pts 求调
656774
ZhangWeiYue0203楼主2024/8/22 21:44

思路:

若n为偶数,则交出n/2只猫猫,剩余n/2只猫猫;

若n为奇数,则令剩余数量为偶数,此时计数增加1。

通过尽量使猫猫数量为偶数减少犹豫次数。

提交记录

subtask #1 10pts
subtask #2 20pts
subtask #3 0pts

源码:

#include<bits/stdc++.h>
using namespace std;
int solve(){
	long long n,c=0;
	cin>>n;
	while(n>0){
		if(n%2==0){
			n=n/2;
		}else{
			c++;
			int dn=n/2;
			if((n-dn)%2==0){
				n-=dn;
			}else{
				n=n-dn-1;
			}
		}
	}
	cout<<c<<endl;
	return 0;
}

int main(){
	long T;
	cin>>T;
	for(long i=0;i<T;i++){
		solve();
	}
	return 0;
}

错误信息:

wrong answer On line 2 column 2, read 2, expected 1

求dalao指导,谢谢

2024/8/22 21:44
加载中...