A. Little Artem 題意:這一題比較簡單,簡單說一下就是給你一個n*m的矩陣,要你去塗色,其中‘B’代表黑色,‘W’代表白色,要求是兩者符合這個等式:B=W+1。 題解:簡單簽到題,但我在比賽的時候用了複雜的方法,所以耗的時間較長,賽後看到別人的解法,真的是醍醐灌頂。 代碼: 法一: # ...
題意:這一題比較簡單,簡單說一下就是給你一個n*m的矩陣,要你去塗色,其中‘B’代表黑色,‘W’代表白色,要求是兩者符合這個等式:B=W+1。
題解:簡單簽到題,但我在比賽的時候用了複雜的方法,所以耗的時間較長,賽後看到別人的解法,真的是醍醐灌頂。
代碼:
法一:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int nk_max = 8 + 5; const int INF = 0x3fffffff; int main() { int t; int n,m; cin>>t; while(t--) { int B,W; cin>>n/*行數*/>>m/*列數*/; int tot=n*m; char ptr[150][150]; if(tot%2==0) { B=tot/2; W=B-1; } else { B=(tot/2)+1; W=tot-B; } //塗色 for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { if(i%2!=0&&j%2==0) { ptr[i][j]='W'; } if(i%2!=0&&j%2!=0) { ptr[i][j]='B'; } if(i%2==0&&j%2!=0) { ptr[i][j]='W'; } if(i%2==0&&j%2==0) { ptr[i][j]='B'; } } } // cout<<B<<" "<<W<<"==="<<endl; if(tot%2==0) {//判斷奇偶性,如果是偶數的話 if(ptr[n][m]=='B') { ptr[n][m-1]='B'; } else { ptr[n][m]='B'; } } for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { cout<<ptr[i][j]; } cout<<endl; } } return 0; }
法二:
這個的思路比較簡單,代碼也比較簡潔;
#include <bits/stdc++.h>
using namespace std;
signed main() {
ios::sync_with_stdio(false);
int t,n,m;
cin>>t;
while(t--) {
cin>>n>>m;
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
if(i==1 && j==1) cout<<"W";
else cout<<"B";
}
cout<<endl;
}
}
}
轉載自:https://www.cnblogs.com/mollnn/p/12664323.htmlB. Kind AntonB. Kind AntonB. Kind Anton
題意:給你兩個字元串,其中a只包括-1,0,1;b數組的組成沒有限制,先選定i,j,其中i<j,對a數組進行操作,aj=ai+aj,,註意,此時(i<j),現在要你判斷a數組是否可以通過變化變化為數組a。
題解:這一題如果靠簡單的模擬來做的話,會超時,這裡我們用map來記錄a中出現的每一個元素出現的次數,之後我們從後往前遍歷判斷每一個元素,具體實現看代碼。
#include<iostream> #include<cstring> #include<algorithm> #include<map> int a[100010]={0}; int b[100010]={0}; using namespace std;; int main(){ int t,n; cin>>t; map<int,int> mp; while(t--){ mp.clear(); scanf("%d",&n); for(int i=1;i<=n;i++){ cin>>a[i]; mp[a[i]]++; } for(int i=1;i<=n;i++){ cin>>b[i]; }//數據輸入完畢,下麵開始處理數據 int f=1; for(int i=n;i>=1;i--){ mp[a[i]]--; if(a[i]==b[i]){ continue; } if(a[i]<b[i]){ if(!mp[1]){ f=0; break; } } if(a[i]>b[i]){ if(!mp[-1]){ f=0; break; } } } if(f){ cout<<"YES"<<endl; }else{ cout<<"NO"<<endl; } } return 0; }