admin管理员组

文章数量:1794759

repeat

repeat

PTA_2020模拟赛_L2-4 秀恩爱分得快 (25 分)_细节模拟_TLE处理

//
#include<bits/stdc++.h>
using namespace std;const int N=1111;
double in[2][N];
int sex[N];
vector<int> vv[N];set<int> st1,st2;
set<int>::iterator it;inline int read()
{int ans=0,f=1;char ch=getchar();while( !isdigit(ch) ){if( ch=='-' ) f=0;ch=getchar();}while( isdigit(ch) ){ans=( ans<<1 )+( ans<<3 )+( ch-'0' );ch=getchar();}sex[ans]=f;return ans;
}int main()
{int n,m,i,j,k,a,b,f1,f2;double tt;while( cin>>n>>m ){for( i=0;i<m;i++ ){cin>>k;vv[i].resize(k);for( j=0;j<k;j++ ) vv[i][j]=read();}a=read(); b=read();for( i=0;i<m;i++ ){if( find( vv[i].begin(),vv[i].end(),a )!=vv[i].end() )for( j=0;j<vv[i].size();j++ ){if( vv[i][j]==a ) continue;in[0][vv[i][j]]+=(double)1/vv[i].size();}if( find( vv[i].begin(),vv[i].end(),b )!=vv[i].end() )for( j=0;j<vv[i].size();j++ ){if( vv[i][j]==b ) continue;in[1][vv[i][j]]+=(double)1/vv[i].size();}               // +=}f1=f2=0;// tt=in[a][b]  段错误tt=0; st1.clear();for( i=0;i<n;i++ ){if( in[0][i]>tt && sex[a]+sex[i]==1 ){st1.clear(); tt=in[0][i]; st1.insert( i );}else if( in[0][i]==tt && sex[a]+sex[i]==1 ){st1.insert( i );}}if( st1.find( b )!=st1.end() ) f1=1;tt=0; st2.clear();for( i=0;i<n;i++ ){if( in[1][i]>tt && sex[b]+sex[i]==1 ){st2.clear(); tt=in[1][i]; st2.insert( i );}else if( in[1][i]==tt && sex[b]+sex[i]==1 ){st2.insert( i );}}if( st2.find( a )!=st2.end() ) f2=1;if( f1 && f2 ){if( sex[a]==0 ) cout<<"-"; cout<<a<<" ";if( sex[b]==0 ) cout<<"-"; cout<<b<<endl;continue;}for( it=st1.begin();it!=st1.end();++it ){if( sex[a]==0 ) cout<<"-"; cout<<a<<" ";if( sex[(*it)]==0 ) cout<<"-"; cout<<(*it)<<endl;}for( it=st2.begin();it!=st2.end();++it ){if( sex[b]==0 ) cout<<"-"; cout<<b<<" ";if( sex[(*it)]==0 ) cout<<"-"; cout<<(*it)<<endl;}           // (*it)  !!!}return 0;
}

本文标签: repeat