日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

2018网易互娱笔试1——花砖拼接C++

發布時間:2024/1/8 c/c++ 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2018网易互娱笔试1——花砖拼接C++ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


#include <iostream> #include <cstdio> #include <cstdlib> #include <vector> #include <cstring> #include <algorithm>using namespace std;/* 解題思路: 1、找出需要拼接的整體花磚的個數q=m/n 2、找出剩余拼接的邊長p=m%n,則兩邊需要增加的長度分別為x=p/2,因為花磚邊長只能按照單位1分割,故此處的余量p只能為偶數 3、若p為偶數則直接計算;若p為奇數,則p=p+n(即需要將一塊花磚的邊長加原始余量),同時q=q-1(需要的整體花磚少一個) 4、平分余量,則x+q*n+x=m; 5、構造需要輸出的拼接結果,按行打印出即可 */ void pingjie() {int n=0,m=0;cin>>n>>m;vector<string> vn;vector<vector<char> > vm;string str="";for(int i=0; i<n; i++){cin>>str;vn.push_back(str);}///m是n的整數倍,直接輸出///m除以n余數為奇數偶數時的判斷int p,q;p = m%n;q = m/n;if(1 == p%2){p = p+n;q = (m-n)/n;}///兩邊多出的為p/2int x = p/2;int ex = n-x;//cout<<p<<x<<q<<endl;int number=0;///(n-x)——n行的數據for(int i=ex; i<n; i++){number++;vector<char> temp;for(int j=ex; j<n; j++)temp.push_back(vn[i][j]);int y=0;while(y<q){y++;for(int k=0; k<n; k++)temp.push_back(vn[i][k]);}for(int j=0; j<x; j++)temp.push_back(vn[i][j]);vm.push_back(temp);}///中間的q倍的0——n行的數據int y=0;while(y<q){y++;//cout<<"______test________"<<endl;for(int i=0; i<n; i++){number++;vector<char> temp;for(int j=ex; j<n; j++)temp.push_back(vn[i][j]);for(int k=0; k<n; k++)temp.push_back(vn[i][k]);for(int j=0; j<x; j++)temp.push_back(vn[i][j]);vm.push_back(temp);}}///0——x行的數據for(int i=0; i<x; i++){number++;vector<char> temp;for(int j=ex; j<n; j++)temp.push_back(vn[i][j]);int y=0;while(y<q){y++;for(int k=0; k<n; k++)temp.push_back(vn[i][k]);}for(int j=0; j<x; j++)temp.push_back(vn[i][j]);vm.push_back(temp);}//cout<<number<<endl;for(int i=0; i<number; i++){for(int j=0; j<number; j++)cout<<vm[i][j];cout<<endl;}cout<<endl; }int main() {int T;cin>>T;while(T--)pingjie();//cout << "Hello world!" << endl;return 0; } /** 測試數據: 3 3 5 1x1 xox 1x1 3 7 1x1 xox 1x1 5 7 13s31 lkckl sc2cs lkckl 13s31 測試結果: 11x11 11x11 xxoxx 11x11 11x11oxxoxxo x11x11x x11x11x oxxoxxo x11x11x x11x11x oxxoxxo113s311 113s311 llkckll ssc2css llkckll 113s311 113s311 */

總結

以上是生活随笔為你收集整理的2018网易互娱笔试1——花砖拼接C++的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。