上周比赛总结
反思
万万没想到,上周比赛发现自己更菜了,两个半小时就写了一道题,滑了个大稽……
总不能一周比一周菜吧,唉……
还是老老实实的写本上周的总结吧
比赛题目
Distinct Strings
#include<bits/stdc++.h>
using namespace std;
int main(){
string S; cin >> S;
int ans = 3;
if(S[0]==S[1] && S[1]==S[2]) ans = 1;
else if(S[0]!=S[1] && S[1]!=S[2] && S[2]!=S[0]) ans = 6;
cout << ans << endl;
}
Star or Not
//对于每个顶点,计算它的度数(连接到顶点的边数)。
//如果有度数的顶点N-1,那么答案是Yes;否则答案是No。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
signed main(){
ll n;cin>>n;
vector<ll>count(n+1);//计算每个顶点的度数
for(ll i=1;i<=n-1;i++){
ll a,b;cin>>a>>b;
count[a]++;
count[b]++;
}
for(ll i=1;i<=n;i++){
if(count[i] == n-1){
cout<<"Yes"<<endl;
return 0;//终止程序
}
}
cout<<"No"<<endl;
return 0;
}
Calendar Validator
//对于任意一个给定的元素x,它属于(x-1)/7行、(x-1)%7+1列
//根据这个特点判断元素是否属于原来矩阵的子矩阵
#include<bits/stdc++.h>
using namespace std;
int main(){
int N,M; cin >> N >> M;
vector<vector<int>> B(N,vector<int>(M));
for(int i=0; i<N; i++){
for(int j=0; j<M; j++) cin >> B[i][j];
}
vector<vector<int>> x(N,vector<int>(M)),y(N,vector<int>(M));
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
x[i][j] = (B[i][j]+6)/7;
y[i][j] = (B[i][j]-1)%7+1;
}
}
string ans = "Yes";
for(int i=0; i<N; i++){
for(int j=0; j<M; j++){
if(0 < i && x[i][j] != x[i-1][j]+1) ans = "No";
if(0 < j && y[i][j] != y[i][j-1]+1) ans = "No";
if(0 < j && x[i][j] != x[i][j-1]) ans = "No";
if(0 < i && y[i][j] != y[i-1][j]) ans = "No";
}
}
cout << ans << endl;
}
Play Train
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
signed main(){
ll n,q;cin>>n>>q;
ll nil=-1;
vector<ll>front(n+1,nil);// 在第 i 列火车前面连接的火车,如果没有这样的火车,则为零。
vector<ll>back(n+1,nil);// 在第 i 列火车后面连接的火车,如果没有这样的火车,则为零。
while(q--){
ll c;cin>>c;
if(c==1){
ll x,y;cin>>x>>y;
back[x] = y;
front[y] = x;
}else if(c==2){
ll x,y;cin>>x>>y;
back[x] = nil;
front[y] = nil;
}else{
ll x;cin>>x;
while(front[x] != nil){
x = front[x]; // 移动到 x 的第一个连通分量component of x
}
vector<ll>ans;
while(x != nil){
ans.push_back(x);
x = back[x];
}
cout<<ans.size()<<" ";
for(ll i=0;i<=(int)ans.size()-1;i++){
cout<<ans[i];
if(i!=(int)ans.size()-1)cout<<" ";
else cout<<endl;
}
}
}
return 0;
}
7
String Cards
X
Social Distance 2