GYM 100827 A.Runes(水~)
2017-03-09 14:21
253 查看
Description
给出一个式子,其中有一种数字全部被打了问号,问是否可以填入这个数字使得等式成立且式子合法,所谓合法指的是没有前置0,也不能有-0
Input
第一行一整数T表示用例组数,之后输入一个a op b = c形式的式子,其中op是+,-,*中的一种,a,b,c的长度不会超过6(1<=T<=100)
Output
对于每组用例,如果用一个在式子中未出现的数字替换掉问号之后式子成立则输出这个数字,否则输出-1
Sample Input
5
1+1=?
123*45?=5?088
-5?*-1=5?
19–45=5?
??*??=302?
Sample Output
2
6
0
-1
5
Solution
枚举0~9即可,注意两种不合法情况,即前置0和-0
Code
给出一个式子,其中有一种数字全部被打了问号,问是否可以填入这个数字使得等式成立且式子合法,所谓合法指的是没有前置0,也不能有-0
Input
第一行一整数T表示用例组数,之后输入一个a op b = c形式的式子,其中op是+,-,*中的一种,a,b,c的长度不会超过6(1<=T<=100)
Output
对于每组用例,如果用一个在式子中未出现的数字替换掉问号之后式子成立则输出这个数字,否则输出-1
Sample Input
5
1+1=?
123*45?=5?088
-5?*-1=5?
19–45=5?
??*??=302?
Sample Output
2
6
0
-1
5
Solution
枚举0~9即可,注意两种不合法情况,即前置0和-0
Code
#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<queue> #include<map> #include<set> #include<ctime> using namespace std; typedef long long ll; #define INF 0x3f3f3f3f #define maxn 1111 int T; char s[maxn],c[maxn]; int deal(int l,int r) { int sign=1; if(c[l]=='-') { if(c[l+1]=='0')return INF; sign=-1,l++; } if(c[l]=='0'&&l<r)return INF; int ans=0; for(int i=l;i<=r;i++)ans=10*ans+c[i]-'0'; return sign*ans; } int flag[11]; int main() { scanf("%d",&T); while(T--) { memset(flag,0,sizeof(flag)); scanf("%s",s); int len=strlen(s),gg=-1; for(int i=0;i<len;i++) if(s[i]>='0'&&s[i]<='9')flag[s[i]-'0']=1; for(int k=0;k<10;k++) { if(gg!=-1)break; if(flag[k])continue; for(int i=0;i<len;i++) { c[i]=s[i]; if(c[i]=='?')c[i]=k+'0'; } int pos1,pos2,type=-1; for(int i=1;i<len;i++) { if(type==-1) { if(c[i]=='+')type=1,pos1=i; if(c[i]=='-')type=2,pos1=i; if(c[i]=='*')type=3,pos1=i; } if(c[i]=='=')pos2=i; } int x=deal(0,pos1-1),y=deal(pos1+1,pos2-1),z=deal(pos2+1,len-1); if(x==INF||y==INF||z==INF)continue; if(type==1&&x+y==z)gg=k; else if(type==2&&x-y==z)gg=k; else if(type==3&&1ll*x*y==1ll*z)gg=k; } printf("%d\n",gg); } return 0; }
相关文章推荐
- [CF Gym 100827C] Containment [2014-2015 ACM-ICPC Pacific Northwest Regional Contest C]
- [CF Gym 100827E] Hill Number [2014-2015 ACM-ICPC Pacific Northwest Regional Contest E]
- GYM 100827 G.Number Game(博弈论)
- GYM 100827 H.Pushups(01背包)
- GYM 100827 I.Salary Inequity(线段树)
- GYM 100827 K.Towers(dfs)
- GYM 100827 L.Wormhole(Floyd)
- GYM 100827 D.Function(高斯消元)
- GYM 100827 E.Hill Number(数位DP)
- GYM 100827 F.Knights(dp+矩阵快速幂)
- Codeforces Gym 100187E E. Two Labyrinths bfs
- Codeforces Gym 100463A Crossings 逆序数
- Gym 100637F F. The Pool for Lucky Ones 暴力
- CodeForces Gym 100500A A. Poetry Challenge DFS
- Gym 100703M It's complicated 水题
- Codeforces gym 100685 C. Cinderella 水题
- Codeforces Gym 100418A A - A+-B java高精度
- Codeforces Gym 100286J Javanese Cryptoanalysis 傻逼暴力
- Codeforces Gym 100425H H - Football Bets 构造
- Codeforces Gym 100203D Different vectors 想法题 + Hash