• AtCoder Beginner Contest 329 题解A~F


    A - Spread

    输入字符串,字符之间加上空格输出

    B - Next

    输出数组当中第二大的数

    C - Count xxx

    统计每个字符出现过的最长长度,再累加即可

    1. #include
    2. #pragma GCC optimize("Ofast")
    3. #define INF 0x3f3f3f3f
    4. #define IOS ios::sync_with_stdio(false);cin.tie(0);
    5. #define int long long
    6. #define pb push_back
    7. #define vct vector
    8. #define checkbit __builtin_popcount
    9. #define gcd __gcd
    10. #define use int T;cin>>T;while(T--)
    11. #define LEN length()
    12. #define all(a) a.begin(),a.end()
    13. template<class T> bool mmax(T &u, T v) { return u < v ? (u = v, 1) : 0; }
    14. template<class T> bool mmin(T &u, T v) { return u > v ? (u = v, 1) : 0; }
    15. #define lowbit(x) (x&(-x))
    16. #define yes cout<<"YES"<
    17. #define no cout<<"NO"<
    18. using namespace std;
    19. typedef pair<int,int>pii;
    20. signed main()
    21. {IOS
    22. int n;cin>>n;
    23. string a;
    24. cin>>a;
    25. vct<int>cnt(35,0);
    26. vct<int>mas(35,0);
    27. if(cnt[a[0]-'a']==0)
    28. {
    29. cnt[a[0]-'a']++;
    30. mmax(mas[a[0]-'a'],cnt[a[0]-'a']);
    31. }
    32. for(int i=1;i
    33. if(cnt[a[i]-'a']==0)
    34. {
    35. cnt[a[i]-'a']++;
    36. mmax(mas[a[i]-'a'],cnt[a[i]-'a']);
    37. }
    38. if(a[i]==a[i-1]){
    39. cnt[a[i]-'a']++;
    40. }
    41. else {
    42. mmax(mas[a[i-1]-'a'],cnt[a[i-1]-'a']);
    43. cnt[a[i-1]-'a']=0;
    44. }
    45. }int ans=0;
    46. mmax(mas[a[n-1]-'a'],cnt[a[n-1]-'a']);
    47. for(int i=0;i<35;i++){
    48. ans+=mas[i];
    49. }
    50. cout<
    51. return 0;
    52. }

    D - Election Quick Report

    给定数组,每次第ia_i的票加一,每次都输出最多票的人,

    我们用mas记录当前最大票数的人,在第i次投票时,答案只有masa_i两个人,每次视情况输出,并且更新mas的值即可.

    1. #include
    2. #pragma GCC optimize("Ofast")
    3. #define INF 0x3f3f3f3f
    4. #define IOS ios::sync_with_stdio(false);cin.tie(0);
    5. #define int long long
    6. #define pb push_back
    7. #define vct vector
    8. #define checkbit __builtin_popcount
    9. #define gcd __gcd
    10. #define use int T;cin>>T;while(T--)
    11. #define LEN length()
    12. #define all(a) a.begin(),a.end()
    13. template<class T> bool mmax(T &u, T v) { return u < v ? (u = v, 1) : 0; }
    14. template<class T> bool mmin(T &u, T v) { return u > v ? (u = v, 1) : 0; }
    15. #define lowbit(x) (x&(-x))
    16. #define yes cout<<"YES"<
    17. #define no cout<<"NO"<
    18. using namespace std;
    19. typedef pair<int,int>pii;
    20. bool cmp(int a,int b){
    21. return a>b;
    22. }
    23. signed main()
    24. {IOS
    25. int n,m;cin>>n>>m;
    26. vct<int>a(m+1);
    27. vct<int>cnt(n+1);cin>>a[1];
    28. int mas=a[1];cout<1]<
    29. cnt[a[1]]++;
    30. for(int i=2;i<=m;i++){
    31. cin>>a[i];
    32. cnt[a[i]]++;
    33. if(a[i]!=mas){
    34. if(cnt[a[i]]>cnt[mas]){
    35. mas=a[i];
    36. printf("%lld\n",mas);
    37. }
    38. else if(cnt[a[i]]==cnt[mas]&&a[i]
    39. mas=a[i];
    40. printf("%lld\n",mas);
    41. }
    42. else {
    43. printf("%lld\n",mas);
    44. }
    45. }else{
    46. printf("%lld\n",mas);
    47. }
    48. }
    49. return 0;
    50. }

     E - Stamp

    给一张空白的纸,一个印章T,问是否可以印成S的样子(印章每次会覆盖重复的部分) 

    利用BFS搜索

    1. #include
    2. #pragma GCC optimize("Ofast")
    3. #define INF 0x3f3f3f3f
    4. #define IOS ios::sync_with_stdio(false);cin.tie(0);
    5. #define int long long
    6. #define pb push_back
    7. #define vct vector
    8. #define checkbit __builtin_popcount
    9. #define gcd __gcd
    10. #define use int T;cin>>T;while(T--)
    11. #define LEN length()
    12. #define all(a) a.begin(),a.end()
    13. template<class T> bool mmax(T &u, T v) { return u < v ? (u = v, 1) : 0; }
    14. template<class T> bool mmin(T &u, T v) { return u > v ? (u = v, 1) : 0; }
    15. #define lowbit(x) (x&(-x))
    16. #define yes cout<<"YES"<
    17. #define no cout<<"NO"<
    18. using namespace std;
    19. typedef pair<int,int>pii;
    20. const int N= 2e5+7;
    21. signed main()
    22. {IOS
    23. int n,m;cin>>n>>m;
    24. string s,t;cin>>s>>t;
    25. vct<bool>st(N);
    26. queue<int> q;
    27. for(int i=0;i+m-1
    28. bool flag=1;
    29. for(int j=0;j
    30. if(s[i+j]!=t[j])flag=0;
    31. }
    32. if(flag)q.push(i),st[i]=1;
    33. }
    34. while(!q.empty()){
    35. int u=q.front();q.pop();
    36. for(int j=0;j'#';
    37. for(int i=max(u-m+1,0*1ll);i<=u+m-1&&i+m-1
    38. if(!st[i])
    39. {int flag=1;
    40. for(int j=0;j
    41. if(s[i+j]!='#'&&s[i+j]!=t[j])flag=0;
    42. }
    43. if(flag)q.push(i),st[i]=1;
    44. }
    45. }
    46. }
    47. bool isok=1;
    48. for(int i=0;i
    49. if(s[i]!='#')isok=0;
    50. }
    51. if(isok)cout<<"Yes"<
    52. else cout<<"No"<
    53. return 0;
    54. }

    F - Colored Ball

    每次操作将a位置当中的元素,放到b位置,因为是颜色,故用set集合

    如果按照题目的要求直接写不加优化的话亲测TLE

    故当a当中的元素多于b的时候,交换a,b当中的元素,再插入a,效果相同,这样可以达到最优效果

    1. #include
    2. #pragma GCC optimize("Ofast")
    3. #define INF 0x3f3f3f3f
    4. #define IOS ios::sync_with_stdio(false);cin.tie(0);
    5. #define int long long
    6. #define pb push_back
    7. #define vct vector
    8. #define checkbit __builtin_popcount
    9. #define gcd __gcd
    10. #define use int T;cin>>T;while(T--)
    11. #define LEN length()
    12. #define all(a) a.begin(),a.end()
    13. template<class T> bool mmax(T &u, T v) { return u < v ? (u = v, 1) : 0; }
    14. template<class T> bool mmin(T &u, T v) { return u > v ? (u = v, 1) : 0; }
    15. #define lowbit(x) (x&(-x))
    16. #define yes cout<<"YES"<
    17. #define no cout<<"NO"<
    18. using namespace std;
    19. typedef pair<int,int>pii;
    20. const int N= 2e5+7;
    21. signed main()
    22. {IOS
    23. int n,q;cin>>n>>q;
    24. int x;
    25. set<int>tot[n+1];
    26. for(int i=1;i<=n;i++)
    27. {
    28. cin>>x;
    29. tot[i].insert(x);
    30. }
    31. while(q--){
    32. int a,b;cin>>a>>b;
    33. if(tot[a].size()>tot[b].size())
    34. swap(tot[a],tot[b]);
    35. for(auto z:tot[a]){
    36. tot[b].insert(z);
    37. }
    38. tot[a].clear();
    39. cout<size()<<"\n";
    40. }
    41. return 0;
    42. }

  • 相关阅读:
    java 实现冒泡排序
    Unity 运行状态下动态保存 预制体/预制体上脚本参数
    java毕业设计个人博客系统mybatis+源码+调试部署+系统+数据库+lw
    JumpServer开源堡垒机完成龙芯架构兼容性认证
    员工喜欢用什么样的CRM软件?
    在线文档生成:Swagger
    【Python(一)】环境搭建之Anaconda安装
    serve error code=5011(RtcRtpMuxer)(Failed to mux RTP packet for RTC)
    Java查询数据放入word模板中并在前端导出下载
    Java中String,Int,Date,Timestamp类型转化
  • 原文地址:https://blog.csdn.net/Enjoy10ve/article/details/134489807