CF#151 div 2
2028 ワード
前の4題はみな簡単で,最後の1題はまだやっていない.
前の2題は簡単でコードを貼るのがおっくうだ.
C.実はとても简単で、しかしある地方が间违っていることを考虑したため、それから人にhackを落とされて、1时间の试合をして寝たので、起きてからやっとhackを発见して、だからわざわざテーマをもう一度やり直して、水题Aを発见するのはやはり少し挫折します.
コードを貼ってください.
D.
E.
前の2題は簡単でコードを貼るのがおっくうだ.
C.実はとても简単で、しかしある地方が间违っていることを考虑したため、それから人にhackを落とされて、1时间の试合をして寝たので、起きてからやっとhackを発见して、だからわざわざテーマをもう一度やり直して、水题Aを発见するのはやはり少し挫折します.
コードを貼ってください.
void solveC()
{
int n,k;
cin>>n>>k;
for(int i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
int num=0;
for(int i=0;i<n;i++)
{
for(int j=n-i-1;j>=0;j--)
{
cout<<i+1;
for(int l=n-1;l>=n-i;l--)
{
cout<<" "<<a[l];
}
cout<<" "<<a[j]<<endl;
num++;
if(num>=k)break;
}
if(num>=k)break;
}
}
D.
struct kdq
{
int u,v;
int next;
} edge[1000005];
int num=0;
int head[100005];
void insert(int u,int v)
{
edge[num].u=u;
edge[num].v=v;
edge[num].next=head[u];
head[u]=num++;
}
set<int >vv[100005];
int vis[100005];
void solveD()
{
int n,m;
cin>>n>>m;
memset(head,-1,sizeof(head));
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
while(m--)
{
int a1,b1;
scanf("%d%d",&a1,&b1);
insert(a1,b1);
insert(b1,a1);
}
for(int i=1; i<=n; i++)
{
for(int j=head[i]; j!=-1; j=edge[j].next)
{
int v=edge[j].v;
if(a[i]!=a[v])//
vv[a[i]].insert(a[v]);
}
}
int ans=-1;
int color=-1;
for(int i=1; i<=n; i++)
{
if(vis[a[i]])continue;
int kk=vv[a[i]].size();
if(kk>ans)
{
ans=kk;
color=a[i];
}
else if(kk==ans)
{
if(color>a[i])
color=a[i];
}
vis[a[i]]=1;
}
printf("%d
",color);
}
E.