2016年第七届蓝桥杯C/C++ A组国赛 —— 第一题:随意组合
生活随笔
收集整理的這篇文章主要介紹了
2016年第七届蓝桥杯C/C++ A组国赛 —— 第一题:随意组合
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
標題:隨意組合
小明被綁架到X星球的巫師W那里。
其時,W正在玩弄兩組數據 (2 3 5 8) 和 (1 4 6 7)
他命令小明從一組數據中分別取數與另一組中的數配對,共配成4對(組中的每個數必被用到)。
小明的配法是:{(8,7),(5,6),(3,4),(2,1)}
巫師凝視片刻,突然說這個配法太棒了!
因為:
每個配對中的數字組成兩位數,求平方和,無論正倒,居然相等:
872 + 562 + 342 + 212 = 12302
782 + 652+ 432 + 122 = 12302
小明想了想說:“這有什么奇怪呢,我們地球人都知道,隨便配配也可以啊!”
{(8,6),(5,4),(3,1),(2,7)}
862 + 542 + 312 + 272 = 12002
682 + 452 + 132 + 722 = 12002
巫師頓時凌亂了。。。。。
請你計算一下,包括上邊給出的兩種配法,巫師的兩組數據一共有多少種配對方案具有該特征。
配對方案計數時,不考慮配對的出現次序。
就是說:
{(8,7),(5,6),(3,4),(2,1)}
與
{(5,6),(8,7),(3,4),(2,1)}
是同一種方案。
注意:需要提交的是一個整數,不要填寫任何多余內容(比如,解釋說明文字等)
code
/*^....0^ .1 ^1^.. 011.^ 1.0^ 1 ^ ^0.11 ^ ^..^0. ^ 0^.0 1 .^.1 ^0 .........001^.1 1. .111100....01^00 ^ 11^ ^1. .1^1.^ ^0 0^.^ ^0..1.1 1..^1 .0 ^ ^00. ^^0.^^ 0 ^^110.^0 0 ^ ^^^10.01^^ 10 1 1 ^^^1110.101 10 1.1 ^^^1111110010 01 ^^ ^^^1111^1.^ ^^^10 10^ 0^ 1 ^^111^^^0.1^ 1....^11 0 ^^11^^^ 0.. ....1^ ^ ^1. 0^ ^11^^^ ^ 1 111^ ^ 0.10 00 11 ^^^^^ 1 0 1.0^ ^0 ^0 ^^^^ 0 0.0^ 1.0 .^ ^^^^ 1 1 .0^.^ ^^ 0^ ^1 ^^^^ 0. ^.11 ^ 11 1. ^^^ ^ ^ ..^^..^ ^1 ^.^ ^^^ .0 ^.00..^ ^0 01 ^^^ .. 0..^1 .. .1 ^.^ ^^^ 1 ^ ^0001^ 1. 00 0. ^^^ ^.0 ^.1. 0^. ^.^ ^.^ ^^^ ..0.01 .^^. .^ 1001 ^^ ^^^ . 1^. ^ ^. 11 0. 1 ^ ^^ 0.0 ^. 0 ^0 1 ^^^ 0.0.^ 1. 0^ 0 .1 ^^^ ...1 1. 00 . .1 ^^^ ..1 1. ^. 0 .^ ^^ ..0. 1. .^ . 0 ..1 1. 01 . . ^ 0^.^ 00 ^0 1. ^ 1 1.0 00 . ^^^^^^ ..^ 00 01 ..1. 00 10 1 ^^.1 00 ^. ^^^ .1.. 00 .1 1..01 ..1.1 00 1. ..^ 10^ 1^ 00 ^.1 0 1 1.1 00 00 ^ 1 ^. 00 ^.^ 10^ ^^1.1 00 00 10^..^ 1. ^. 1.0 1 ^. 00 00 .^^ ^. ^ 1 00 ^0000^ ^ 011 0 ^. 00.0^ ^00000 1.00.1 11. 1 0 1^^0.01 ^^^ 01.^ ^ 1 1^^ ^.^1 1 0... 1 ^1 1^ ^ .01 ^ 1.. 1.1 ^0.0^ 0 1..01^^100000..0^1 1 ^ 1 ^^1111^ ^^0 ^ ^ 1 1000^.1 ^.^ . 00.. 1.1 0. 01. . 1. .^1. 1 1. ^0^ . ^.1 00 01^.0 001. .^*/ // VB_king —— 2016_Finals_A_1.cpp created by VB_KoKing on 2019-05-04:19. /* Procedural objectives:Variables required by the program:Procedural thinking:(2 3 5 8) 和 (1 4 6 7) 取數配對,明顯是一個排列問題2分別與1 4 6 7配對,然后3與剩下的三個數配對,5與剩下的兩個數配對,8與剩下的一個數配對。也就是說,總情況有4*3*2*1=24種換種思路,第一個數列的全排列與第二個數列的全排列進行組合,然后判斷兩個平方和是否相等,之后在去重。再思考一下,第一個數列的全排列已經能夠組合出所有的情況了。Functions required by the program:*/ /* My dear Max said: "I like you, So the first bunch of sunshine I saw in the morning is you, The first gentle breeze that passed through my ear is you, The first star I see is also you. The world I see is all your shadow."FIGHTING FOR OUR FUTURE!!! */ #include <iostream> #include <algorithm> using namespace std; int main() {int ans=0,num0[4]={2,3,5,8},num1[4]={1,4,6,7};do {int a=num0[0]*10+num1[0],b=num0[1]*10+num1[1],c=num0[2]*10+num1[2],d=num0[3]*10+num1[3];int e=num1[0]*10+num0[0],f=num1[1]*10+num0[1],g=num1[2]*10+num0[2],h=num1[3]*10+num0[3];if (a*a+b*b+c*c+d*d==e*e+f*f+g*g+h*h){ans++;cout<<a<<"^2^+"<<b<<"^2^+"<<c<<"^2^+"<<d<<"^2^="<<a*a+b*b+c*c+d*d<<endl;cout<<e<<"^2^+"<<f<<"^2^+"<<g<<"^2^+"<<h<<"^2^="<<e*e+f*f+g*g+h*h<<endl;cout<<endl;}}while (next_permutation(num0,num0+4));cout<<ans<<endl;return 0; }總結
以上是生活随笔為你收集整理的2016年第七届蓝桥杯C/C++ A组国赛 —— 第一题:随意组合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2016年第七届蓝桥杯C/C++ B组国
- 下一篇: 2017年第八届蓝桥杯 —— 训练题目