蒟(巨)蒻(弱)求助,精度问题
查看原帖
蒟(巨)蒻(弱)求助,精度问题
327193
利维坦楼主2020/10/30 13:44

看题解之前:

#include<bits/stdc++.h>
using namespace std;

int n,a[12]={0,0,4,4,4,4,4,4,4,4,16,4},tmp;

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		a[x]--;
		tmp+=x;
	}
	int x=21-tmp;
//	if(x<=0 && n<52)cout<<"VUCI\n";
	tmp=0;
	for(int i=0;i<=x;i++){
		tmp+=a[i];//看看还剩多少 
	}
	if(tmp<=(52-n)/2){
		cout<<"DOSTA"<<endl;
	}
	else cout<<"VUCI"<<endl;
	return 0;
}

于是:第十七个点WA,97分QWQAQ

看解析之后:

发现只有一个符号不一样:

解析源码:

#include <iostream>
using namespace std;
int s,a[12]={0,0,4,4,4,4,4,4,4,4,16,4};//每种价值的牌的个数
int main(){
	int n,m,t,i;
	cin>>n;
	m=52-n;//剩下的牌数
	while(n--)
	{
		cin>>t;
		s+=t;//手中总和,累加
		a[t]--;//用掉一张
	}
	int k=21-s,p=0;
	for(i=0;i<=k;i++)//手中总和加上抽到的牌不大于21即可,可以的牌大于一半就可以抽牌(不考虑取等也避免了奇数除二的问题)
		p+=a[i];
	if(p>m/2) cout<<"VUCI";
	else cout<<"DOSTA";
	return 0;
}

根据他的改了一下

#include<bits/stdc++.h>
using namespace std;

int n,a[12]={0,0,4,4,4,4,4,4,4,4,16,4},tmp;

int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		int x;
		cin>>x;
		a[x]--;
		tmp+=x;
	}
	int x=21-tmp;
//	if(x<=0 && n<52)cout<<"VUCI\n";
	tmp=0;
	for(int i=0;i<=x;i++){
		tmp+=a[i];//看看还剩多少 
	}
	if(tmp>(52-n)/2){
		cout<<"VUCI"<<endl;
	}
	else cout<<"DOSTA"<<endl;
	return 0;
}

只调了一下if else 的位置,就AC了???

蒟蒻不解,求助大神

sto %%% 巨佬 %%% orz

2020/10/30 13:44
加载中...