首页 > 分享 > 3972: 你猜猜我是啥题 =.=

3972: 你猜猜我是啥题 =.=

最新推荐文章于 2021-05-25 13:40:56 发布

是超大号怪兽 于 2019-08-15 09:59:13 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

3972: 你猜猜我是啥题 =.=

题目:

有一个01串,相邻两个不相同的字符可以相消。比如这样01,10。 我们可以用魔法把0改为1,需要代价a。将1改为0代价为b。 问是否能将01串消为空,如果可以,输出最小的代价是多少?不行请输出-1。 输入 第一行为1个t。随后t行每行一个01串,和a,b。串的长度小于等于1000, t<=200,0<a,b<1012 输出 输出最小代价。 样例输入 1 101011 2 3 样例输出 3

12345678910111213141516

代码:

#include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<string> #include<fstream> using namespace std; typedef long long ll; const ll N = 1010; char ss[N]; int main() { ll t, a, b; scanf("%lld", &t); // ofstream in; // in.open("ans.txt"); while(t--) { scanf("%s%lld%lld", ss, &a, &b); //1 0 ll num0 = 0; ll num1 = 0; ll len = strlen(ss); for(ll i=0; i<len; ++i) { if(ss[i] == '0') { num0++; } else { num1++; } } if(num1 == num0) { printf("0n"); // in << 0 << endl; continue; } if(num0>num1 && (num0-num1)%2 == 0) { printf("%lldn", a*(num0-num1)/2); // in << a*(num0-num1)/2 << endl; continue; } if(num1>num0 && (num1-num0)%2 == 0) { printf("%lldn", b*(num1-num0)/2); // in << b*(num1-num0)/2 << endl; continue; } printf("-1n"); // in << -1 << endl; } // in.close(); return 0; }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748

相关知识

养花的人,有12种性格,猜猜你是哪一种?
花卉猜猜游戏视频
花卉猜猜游戏攻略综合篇
我是园林设计师
吃了30年水果,有多少人不知道果树长啥样?我是才知道
print(“我是第一条语句”) print(”我是第二条语句”) 以上输出的两
康乃馨的花语是啥
园艺疗法 | 你属啥 就有啥样的花
各种花的花语是啥都有啥寓意
百合花的寓意是啥

网址: 3972: 你猜猜我是啥题 =.= https://m.huajiangbk.com/newsview484009.html

所属分类:花卉
上一篇: 常见植物病虫害的识别和防治方法讲
下一篇: 农作物病害识别与分类