欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

xzj usaco刷题

时间:2024-06-15 12:20 作者:admin 点击:
USACO 2019 December Contest, Bronze P1: #include iostream using namespace std; int k,n; int p[25]; int x[25][25]; int main(){ freopen("gymnastics.in","r",stdin); freopen("gymnastics.out","w",stdout); cinkn; for(int i=1;i=k;i++){ for(int j=1

USACO 2019 December Contest, Bronze

P1:

#include <iostream>

using namespace std;

int k,n;

int p[25];

int x[25][25];

int main(){

   freopen("gymnastics.in","r",stdin);

   freopen("gymnastics.out","w",stdout);

   cin>>k>>n;

   for(int i=1;i<=k;i++){

       for(int j=1;j<=n;j++) cin>>p[j];

       for(int a=1;a<n;a++){

           for(int b=a+1;b<=n;b++){

               int b1=p[a];

               int b2=p[b];

               x[b1][b2]++;

           }

       }

   }

   int ans=0;

   for(int a=1;a<=n;a++){

       for(int b=1;b<=n;b++){

           if(x[a][b]==k) ans++;

       }

   }

   cout<<ans;

   fclose(stdin);

   fclose(stdout);

   return 0;

}

P2:

#include <iostream>

using namespace std;

int n,k;

string s;

bool cf(int m){

   int maxid=s.size()-m+1;

   /*

   for(int i=0;i<maxid;i++)

       for(int j=i+1;j<maxid;j++)

           if(s.substr(i,m)==s.substr(j,m)) return true;

           */

   for(int i=0;i<maxid;i++){

       string str=s.substr(i,m);

       int d=s.find(str,i+1);

       if(d!=-1) return true;

   }

   return false;

}

int main(){

   freopen("whereami.in","r",stdin);

   freopen("whereami.out","w",stdout);

   //在一个长度为100的字符串中,找最长的重复子串+1

   cin>>n>>s;

   int l=0,r=n-1;

   while(l<r){

       int mid=(l+r+1)/2;

       if(cf(mid)) l=mid;

       else r=mid-1;

   }

   k=l+1;

   cout<<k;

   fclose(stdin);

   fclose(stdout);

   return 0;

}

作业:

USACO 2019 December Contest, Bronze

Problem 3. Livestock Lineup

(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%