打卡信奥刷题(3257)用C++实现信奥题 P8644 [蓝桥杯 2016 国 B] 机器人塔
P8644 [蓝桥杯 2016 国 B] 机器人塔题目描述X 星球的机器人表演拉拉队有两种服装A 和 B。他们这次表演的是搭机器人塔。类似A B B A B A A A B B B B B A B A B A B B A队内的组塔规则是A 只能站在 AA 或 BB 的肩上。B 只能站在 AB 或 BA 的肩上。你的任务是帮助拉拉队计算一下在给定 A 与 B 的人数时可以组成多少种花样的塔。输入格式输入一行两个整数MMM和NNN空格分开0M,NNM≤2310M,NNM\leq2310M,NNM≤231保证存在k∈Nk\in \mathbb{N}k∈NNMk(k−1)2NM\frac{k(k-1)}{2}NM2k(k−1)​分别表示 A、B 的人数。输出格式要求输出一个整数表示可以产生的花样种数。输入输出样例 #1输入 #11 2输出 #13输入输出样例 #2输入 #23 3输出 #24说明/提示时限 1 秒, 256M。蓝桥杯 2016 年第七届C实现#includebits/stdc.husingnamespacestd;constintN100;intx,y,s,cnt0;boolok[N],op[N];boolcheck(intx,inty){intns;for(inti1;in;i)op[i]ok[i];while(--n){for(inti1;in;i){if(op[i]op[i1]){op[i]false;--x;}else{op[i]true;--y;}if(x0||y0)returnfalse;}}returntrue;}voiddfs(intt,intsum,intans){if(sum0||ans0)return;if(ts1){if(check(sum,ans))cnt;return;}dfs(t1,sum-1,ans);ok[t]true;dfs(t1,sum,ans-1);ok[t]false;}intmain(){scanf(%d%d,x,y);sxy;for(inti1;i50;i){if(si*(i1)/2){si;break;}}dfs(1,x,y);printf(%d,cnt);return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容

相关新闻

最新新闻

日新闻

周新闻

月新闻