HDU - 5938 Four Operations

Posted 晓风微微

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU - 5938 Four Operations相关的知识,希望对你有一定的参考价值。

题意:

不想说

 

坑点;

初始答案应该设置为一个极小的负数,不能设置为0。

 

代码:

#include <bits/stdc++.h>
using namespace std;
#include<stack>
#include<cstring>
char s[30];
typedef long long LL;
int a[30];
int ii=0;
void deal(){
	scanf("%s",s);
	int len=strlen(s);
	LL zans=-1e10;
	for (int i=0;i<len;i++) a[i]=s[i]-‘0‘;
	
	
	for (int q=0; ; q++){
	LL ans,add,mins,mult,div;
	
	
	
	div=0;
	for (int i=len-1-q; i < len; i++) div = div * 10 + a[i];
	mult=a[len-2-q];
	mins=a[len-3-q];
	LL cheng=mins*mult;
	LL chu=cheng/div;
	
	
	LL add1,ans1,ans2,add2;
	add1=ans1=ans2=add2=0;
	
	
	
	
	add1=a[len-4-q];
	for (int i=0;i < len - 4 - q; i++) ans1=ans1*10+a[i];
	ans1+=add1;
	
	
	
	
	
	add2=a[0];
	for (int i=1;i<len-4-q+1;i++) ans2=ans2*10+a[i];
	ans2+=add2;
	
//	cout<<q<<" "<<ans1<<" "<<ans2<<" "<<div<<endl;
	ans2=ans2-chu;
	ans1=ans1-chu;
	
	
	if (zans<ans1) zans=ans1;
	if (zans<ans2) zans=ans2;
	if (len-4-q <= 1) break;
	
	
	}
	printf("Case #%d: %I64d\n",ii,zans);
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--){
		ii++;
		deal();
	}
    return 0;
}

  

以上是关于HDU - 5938 Four Operations的主要内容,如果未能解决你的问题,请参考以下文章

HDU 5938 Four Operations 贪心(中国大学生程序设计竞赛(杭州))

HDU 5938 Four Operations 字符串处理,枚举,把数字字符串变为数值

[HDOJ5938]Four Operations(暴力,DFS)

Hdu 1197 Specialized Four-Digit Numbers

HDU 1197 Specialized Four-Digit Numbers

hdu-5933----hdu-5943