• Educational Codeforces Round 32【A,B,C】


    A。

    水题

     1 #include<bits/stdc++.h>
     2  
     3 using namespace std;
     4 #define int long long 
     5 int arr[25000];
     6 signed main(){
     7     int n;
     8     cin>>n;
     9     for(int i=1;i<=n;i++){
    10          cin>>arr[i];
    11     }
    12     int ans=0;
    13     for(int i=2;i<n;i++){
    14         if(arr[i]>max(arr[i-1],arr[i+1])){
    15             ans++;
    16         }else if(arr[i]<min(arr[i-1],arr[i+1])){
    17             ans++;
    18         }
    19     }
    20     cout<<ans;
    21     return 0;
    22 }

    B题

    思维

     1 #include<bits/stdc++.h>
     2  
     3 using namespace std;
     4 #define int long long 
     5 int arr[25000];
     6 signed main(){
     7     int n;cin>>n;
     8     string s;
     9     cin>>s;int l=0,d=0,u=0,r=0;
    10     for(int i=0;i<s.size();i++){
    11         if(s[i]=='L'){
    12             l++;
    13         }else if(s[i]=='R'){
    14             r++;
    15         }else if(s[i]=='D'){
    16             d++;
    17         }else{
    18             u++;
    19         }
    20     }
    21     cout<<max(min(min(l,r),min(d,u))*4,2*min(l,r)+2*min(d,u));
    22     return 0;
    23 }

    C题 思维

    题意:

    題意:字符串任意k長度子串都要包含某個字母,問長度k最小為多少。

    題解:先預處理把相同字母之間的長度都存到一個數組裏(這裏註意最前面和最後面的處理),都要包含某個字母,那麽我們肯定要取數組裏面的最大值,然後把最大值比較一下,取下最小值就OK啦。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define N 2000000
     4 #define inf 1<<30 
     5 vector<int> v[N];
     6 signed main(){
     7     int sum=inf;
     8  
     9     string str;cin>>str;
    10     int len=str.size();
    11     for(int i=0;i<26;i++){
    12         v[i].push_back(0);
    13     } 
    14     for(int i=0;i<str.size();i++){
    15         v[str[i]-'a'].push_back(i+1);
    16     }
    17     for(int i=0;i<26;i++){
    18         v[i].push_back(str.size()+1);
    19     }
    20     for(int i=0;i<26;i++){
    21         int t=0;
    22         for(int j=1;j<v[i].size();j++){
    23             t=max(t,v[i][j]-v[i][j-1]);
    24         }    
    25         if(!t) continue;
    26         sum=min(t,sum);
    27     }
    28     cout<<sum;
    29     return 0;
    30 }
  • 相关阅读:
    sqlserver创建链接服务器连接sqlserver脚本
    两步快速获取小程序源码
    SQL判断是否存在该数据 有则更新,没有则插入
    利用c#+jquery+echarts生成统计报表(附源代码)
    每晚定时重启IIS和数据库服务可节省服务器资源
    SQL中的循环、for循环、游标
    sql的行转列(PIVOT)与列转行(UNPIVOT)
    SQLServer 简单数据拆分
    IIS安装与MVC程序部署
    (六)HTTP和HTTPS(转)
  • 原文地址:https://www.cnblogs.com/pengge666/p/12109365.html
Copyright © 2020-2023  润新知