The 2019 ICPC Asia Shanghai Regional Contest-C-Spanning Tree Removal

Posted charles1999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了The 2019 ICPC Asia Shanghai Regional Contest-C-Spanning Tree Removal相关的知识,希望对你有一定的参考价值。

知识点:构造、思维。

题目链接:https://ac.nowcoder.com/acm/contest/4370/D

题意:n点完全图,每次可以删除一个生成树的边,问最多可以删几次,并构造出其中一种。

题解:给出一种删边方式可以尽可能多次的删除:第i次:从i开始。依次删除i-(i+1)-(i-1)-(i+2)-(i-2)-…… 直到连接完所有点为止。总共可以删除n/2次。

AC代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main(){
 5     int t;
 6     cin>>t;
 7     for(int cas=1;cas<=t;cas++){
 8         int n;
 9         cin>>n;
10         printf("Case #%d: %d
",cas,n/2);
11         for(int i=0;i<n/2;i++){
12             for(int j=1,f=1,x=i;j<=n-1;j++,f=-f){
13                 int y=(x+j*f+n)%n;
14                 cout<<x+1<<" "<<y+1<<"
";
15                 x=y;
16             }
17         }
18     }
19     return 0;
20 }

 

以上是关于The 2019 ICPC Asia Shanghai Regional Contest-C-Spanning Tree Removal的主要内容,如果未能解决你的问题,请参考以下文章

The Preliminary Contest for ICPC Asia Yinchuan 2019

The Preliminary Contest for ICPC Asia Shenyang 2019

The Preliminary Contest for ICPC Asia Shanghai 2019

The Preliminary Contest for ICPC Asia Shanghai 2019

The Preliminary Contest for ICPC Asia Xuzhou 2019

The Preliminary Contest for ICPC Asia Nanchang 2019