被教育场45

Posted mxang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了被教育场45相关的知识,希望对你有一定的参考价值。

ABC略

C爆int,从20min一直调到70min,然后放弃,结束时改了long来了一发然后AC,,多了200++罚时很难受。1100-1800。

D题非常简单(但是我一直在肝C。。。)

题意:求一个具有n个顶点的图,该图有a个联通块,该图的补图有b个联通块。

离散都学了,,然而我都睡过去了导致很懵逼,看了好久才注意到这样一个事情: 补图的联通块的个数等于原图中度数为n-1的顶点的个数加一

然后我们很容易就能发现 a>=2&&b>=2 时是无解的。那么就只剩下3种情况。

1.a==1&&b==1

  首先注意到 n=1,2,3这种特殊情况。剩下的只要按顺序连点就可以(i-i+1相连)。

2.a==1&&b>1(用if-else的话后面的b我就懒得写了)

  那么我们首先先让b-1个点都是完全点(我也不知道怎么称呼,就是与其他每个点都有边),然后就不用管了。。。

3.a>1&&b==1

  先让a-1个点独立。剩下的连起来就完事了。

 

前面的是快速IO。。。

正在努力向c++转变,,,

 

package R45;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class Main4 {
    static BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
    static StringTokenizer tok;
    static boolean hasNext()
    {
        while(tok==null||!tok.hasMoreTokens())
            try{
                tok=new StringTokenizer(in.readLine());
            }
            catch(Exception e){
                return false;
            }
        return true;
    }
    static String next()
    {
        hasNext();
        return tok.nextToken();
    }
    static long nextLong()
    {
        return Long.parseLong(next());
    }
    static int nextInt()
    {
        return Integer.parseInt(next());
    }
    static PrintWriter out=new PrintWriter(new OutputStreamWriter(System.out));


    static int n;
    static int g[][];
    public static void main(String[] args) {
        n = nextInt();
        int a = nextInt();
        int b = nextInt();
        g = new int[n+1][n+1];
        if (a>=2&&b>=2){
            out.println("NO");
            out.flush();
            return;
        }else if (a==1&&b==1){
            if (n==1){
                out.println("YES");
                out.println(0);
            }else if (n<=3){
                out.println("NO");
            }else {
                out.println("YES");
                for(int i=2;i<=n;i++){
                    g[i-1][i]=1;
                    g[i][i-1]=1;
                }
                syso();
            }
        }else {
            out.println("YES");
            if (a==1){
                for(int i=1;i<=b-1;i++){
                    for(int j=1;j<=n;j++){
                        if (i!=j) {
                            g[i][j] = 1;
                            g[j][i] = 1;
                        }
                    }
                }
                syso();
            }else {//b==1
                //先挑出来a-1个单独的点,剩下的随,随意?
                for(int i=a;i<=n;i++){
                    for(int j=a;j<=n;j++){
                        if (i!=j)
                            g[i][j]=g[j][i]=1;
                    }
                }
                syso();
            }
        }
        out.flush();
    }
    public static void syso(){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                out.print(g[i][j]);
            }
            out.println();
        }
    }
}

 

以上是关于被教育场45的主要内容,如果未能解决你的问题,请参考以下文章

利用免费云桌面软件搭建办公和教育场境

Boring Segments-CF教育场112.尺取+线段树

云计算,改变教育的下一个爆点?

从android中的片段更改自定义ActionBar标题

云计算是一场马拉松,没有终点,剩者为王!

通过 webapp 提供时,SVG 片段标识符在 Safari 中被交换