L1-1 编程解决一切 5分
L1-097 编程解决一切 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388416
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool tin = 0 ;
void solve()
{cout<<"Problem? The Solution: Programming.";
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;if(tin)cin>>T;while(T--){solve();}return 0;
}
L1-2 再进去几个人 5分
L1-098 再进去几个人 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388417
#include<bits/stdc++.h>
using namespace std;
int main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int a,b;cin>>a>>b;cout<<b-a;return 0;
}
L1-3 帮助色盲 10分
L1-099 帮助色盲 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388418
#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int a,b;cin>>a>>b;if(b||a==2){cout<<"-\n";} else if(a==0){cout<<"biii\n";}else if(a==1){cout<<"dudu\n";}if(a==0||a==2)cout<<"stop";else if(a==1){cout<<"move";}
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;//cin>>T;while(T--){solve();}return 0;
}
L1-4 四项全能 10分
L1-100 四项全能 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388419
#include<bits/stdc++.h>
using namespace std;
#define int long long
bool tin =0;
void solve()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0); int n,m;cin>>n>>m;int sum=0;for(int i=0;i<m;i++){int x;cin>>x;sum+=x;}int ma=n*(m-1);cout<<max(0LL,sum-ma);
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;if(tin)cin>>T;while(T--){solve();}return 0;
}
L1-5 别再来这么多猫娘了!15分
L1-101 别再来这么多猫娘了! - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?page=1&problemSetProblemId=1781658570803388420
#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int n;cin>>n;vector <string > s(n);for(int i=0;i<n;i++)cin>>s[i];int k;cin>>k;cin.ignore();string ss;getline(cin,ss);int ans=0;string st="遮沙避风了";//是啥都行,与原字符区分开就行,最好使用组合符号如x_x;int nn=st.size();for(int i=0;i<n;i++){while(ss.find(s[i])!=-1){int b=ss.find(s[i]);ss.erase(b,s[i].size());ss.insert(b,st);ans++;}}while(ss.find(st)!=-1){int b=ss.find(st);ss.erase(b,nn);ss.insert(b,"<censored>");}if(ans>=k){cout<<ans<<'\n';ss="He Xie Ni Quan Jia!";}cout<<ss;
}signed main()
{int T;T=1;//cin>>T;while(T--){solve();}return 0;
}
L1-6 兰州牛肉面 15分
L1-102 兰州牛肉面 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?page=1&problemSetProblemId=1781658570803388421
#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve()
{map<int,double> pri;map<int,int> num;int n;cin>>n;for(int i=1;i<=n;i++){double a;cin>>a;pri[i]=a;}while(1){int a,b;cin>>a>>b;num[a]+=b;if(!a&&!b)break;}double ans=0;for(int i=1;i<=n;i++){cout<<num[i]<<'\n';ans+=pri[i]*1.0*num[i];}cout<<fixed<<setprecision(2)<<ans;
}signed main()
{int T;T=1;//cin>>T;while(T--){solve();}return 0;
}
L1-7 整数的持续性 20分
L1-103 整数的持续性 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388422&page=1
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool tin = 0;
int ans[100005];
void solve()
{int a,b;cin>>a>>b;int n=b-a;for(int i=a;i<=b;i++){int t=i;int num=0;while(t>=10){num++;int ne=1;while(t){ne*=t%10;t/=10;}t=ne;}ans[i-a]=num;}int m=0;for(int i=0;i<=n;i++){m=max(m,ans[i]);}int j=0;cout<<m<<'\n';for(int i=0;i<=n;i++){if(ans[i]==m){if(j)cout<<' ';elsej=1;cout<<i+a;}}
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;if(tin)cin>>T;while(T--){solve();}return 0;
}
L1-8 九宫格 20分
L1-104 九宫格 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388423&page=1
#include<bits/stdc++.h>
using namespace std;
#define int long long
bool tin =1;
int n=9;
bool hang(vector <vector<int>>a)
{for(int i=0;i<n;i++){set<int> st;for(int j=0;j<n;j++){if(a[i][j]>=1&&a[i][j]<=9){if(st.count(a[i][j]))return 0;st.insert(a[i][j]);}elsereturn 0;}}return 1;
}
bool lie(vector <vector<int>>a)
{for(int i=0;i<n;i++){set<int> st;for(int j=0;j<n;j++){if(a[j][i]>=1&&a[j][i]<=9){if(st.count(a[j][i]))return 0;st.insert(a[j][i]);}elsereturn 0;}}return 1;
}
bool gong(vector <vector<int>>a)
{for(int i=0;i<n;i+=3){for(int j=0;j<n;j+=3){set<int> st;for(int k=i;k<i+3;k++){for(int l=j;l<j+3;l++){if(a[k][l]>=1&&a[k][l]<=9){if(st.count(a[k][l]))return 0;st.insert(a[k][l]);}elsereturn 0; }}}}return 1;
}
void solve()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0); vector <vector <int> > a(n,vector <int>(n));for(int i=0;i<n;i++){for(int j=0;j<n;j++)cin>>a[i][j];}if(hang(a)&&lie(a)&&gong(a))cout<<'1';elsecout<<'0';cout<<'\n';
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;if(tin)cin>>T;while(T--){solve();}return 0;
}
L2-1 鱼与熊掌 25分
L2-049 鱼与熊掌 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?page=1&problemSetProblemId=1781658570803388424
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool tin = 0;
vector <int> h[100005];
void solve()
{int n,m,k,x,y;cin>>n>>m;for(int i=1;i<=n;i++){cin>>k;while(k--){cin>>x;h[x].push_back(i);}}cin>>k;while(k--){int ans=0;cin>>x>>y;map<int,bool> ma;for(auto x:h[x])ma[x]=1;for(auto x:h[y])ans+=ma[x];cout<<ans<<'\n';}
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;if(tin)cin>>T;while(T--){solve();}return 0;
}
L2-2 懂蛇语 25分
L2-050 懂蛇语 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388425&page=1
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool tin = 0;
string ans[100005];
void solve()
{unordered_map<string,vector <string> > ma;int n;cin>>n;string s; getline(cin,s);for(int i=0;i<n;i++){getline(cin,s);string st="";int t=s.size();for(int i=0;i<t;i++){if(i==0&&s[i]!=' '||s[i]!=' '&&s[i-1]==' ')st+=s[i];}ma[st].push_back(s);}int m;cin>>m;getline(cin,s);for(int i=0;i<m;i++){getline(cin,s);string st="";int t=s.size();for(int i=0;i<t;i++){if(i==0&&s[i]!=' '||s[i]!=' '&&s[i-1]==' ')st+=s[i];}int ok=1;int num=0;for(auto x:ma[st])ans[num++]=x;sort(ans,ans+num);if(num){for(int i=0;i<num;i++){if(i)cout<<"|";cout<<ans[i];}}elsecout<<s;cout<<'\n';}
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;if(tin)cin>>T;while(T--){solve();}return 0;
}
L2-3 满树的遍历 25分
L2-051 满树的遍历 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388426&page=1
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool tin = 0;
vector <int> h[100005];
int n,x;
int num=0;
int ans[100005];
void dfs(int t)
{ans[num++]=t;for(auto y:h[t])dfs(y);
}
void solve()
{cin>>n;int g=0;for(int i=1;i<=n;i++){cin>>x;if(x)h[x].push_back(i);elseg=i;}int k=h[g].size();int ok=1;//cout<<k<<'\n';for(int i=1;i<=n;i++){if(ok){if(h[i].size()){if(h[i].size()!=k){ok=0;}}}if(!ok){if(h[i].size()>k)k=h[i].size();}}cout<<k<<' ';if(ok)cout<<"yes";elsecout<<"no";cout<<'\n';dfs(g);for(int i=0;i<num;i++){if(i)cout<<' ';cout<<ans[i];}}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;if(tin)cin>>T;while(T--){solve();}return 0;
}
L2-4 吉利矩阵 25分
L2-052 吉利矩阵 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388427&page=1
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool tin = 0 ;
int l,n;
int ans=0;
int xx[5],yy[5];
void dfs(int num)
{// cout<<num<<' ';if(num==n*n){ans++;}else{for(int i=0;i<=l;i++){int x=num/n,y=num%n;if(xx[x]+i>l||yy[y]+i>l)break;if(x==n-1)i=l-yy[y];if(y==n-1)i=l-xx[x];xx[x]+=i,yy[y]+=i;dfs(num+1);xx[x]-=i,yy[y]-=i;}}
}
void solve()
{cin>>l>>n;dfs(0);cout<<ans;
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;if(tin)cin>>T;while(T--){solve();}return 0;
}
L3-1 夺宝大赛 30分
L3-037 夺宝大赛 - 团体程序设计天梯赛-练习集 (pintia.cn)https://pintia.cn/problem-sets/994805046380707840/exam/problems/type/7?problemSetProblemId=1781658570803388428&page=1其实是一道简单题,多起点单终点直接看成单起点多终点,bfs一便记录步数然后处理数据即可
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool tin = 0 ;
int ma[125][125];
pair <int,int> bb[120];int n,m;
int nu[120][120];
int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
void bfs(int a,int b)
{queue <pair <int,int> > q;q.push({a,b});nu[a][b]=1;while(!q.empty()){int x=q.front().first,y=q.front().second;q.pop();for(int i=0;i<4;i++){int xx=x+dx[i],yy=y+dy[i];if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&nu[xx][yy]==0&&ma[xx][yy]!=0){q.push({xx,yy});nu[xx][yy]=nu[x][y]+1;}}}
}
void solve()
{cin>>n>>m;int ax=0,bx=0;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>ma[i][j];if(ma[i][j]==2)ax=i,bx=j;}}bfs(ax,bx);int k;cin>>k;int a,b;map<int,int> mp;mp[INT_MAX]++;vector <pair <int,int> > ans(k+1);for(int i=1;i<=k;i++){cin>>b>>a;ans[i].first=nu[a][b];if(ans[i].first==0)ans[i].first=INT_MAX;mp[ans[i].first]++;ans[i].second=i;}sort(ans.begin()+1,ans.end());int ok=1;for(int i=1;i<=k;i++){if(mp[ans[i].first]==1){cout<<ans[i].second<<' '<<ans[i].first-1;ok=0;break;}}if(ok)cout<<"No winner.";
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T=1;if(tin)cin>>T;while(T--){solve();}return 0;
}