2503 最长字符串

TAG 水题

先找出大的count,比如A,组成A B A B .... A B A 这样,A包在外面,再把多余的A加塞进去,能塞多少是多少。

注意处理 max 0 的边界情况

#include <stdio.h> //#include <string.h> //const int N=205; int countA, countB, maxA, maxB, ans; int pieceA, pieceB; int max(const int &x, const int &y) { return x>y ? x :y; } int min(const int &x,const int &y) { return x<y ? x : y; } int cal() { int rest; if ( maxA == 0 ) return maxB > countB ? countB : maxB; if ( maxB == 0 ) return maxA > countA ? countA : maxA; if ( countA > countB ) { rest = countA - countB -1; return countB*2+1 + min( rest, (countB+1)*(maxA-1) ); } if ( countA < countB ) { rest = countB - countA -1; return countA*2+1 + min( rest, (countA+1)*(maxB-1) ); } return countA*2; } int main(int argc, char *argv[]) { while ( scanf("%d%d%d%d", &countA, &countB, &maxA, &maxB)!=EOF ) { ans = cal(); printf("%d/n", ans); } return 0; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值