zoukankan      html  css  js  c++  java
  • 【JZOJ6375】华灵[蝶妄想]

    description


    analysis

    • 明显括号序长度是偶数,如果其中一个是奇数,那么只能让这奇数行或列是括号序

    • 对于两个都是偶数,需要分类讨论,假设(n<m)

    • 有一种是牺牲掉(nover 2)行,第一行全左括号,最后一行全右括号

    • ,比如这样,这个比较容易想到,答案是(m+{nover 2}-1)

    • 有一种是牺牲掉第一行列、最后一行列,结果剩下(n+m-4)行列全都可行

    • ,像这样构造,最后取两个中较优的


    code

    #pragma GCC optimize("O3")
    #pragma G++ optimize("O3")
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #define ll long long
    #define reg register ll
    #define max(x,y) ((x>y)?(x):(y))
    #define min(x,y) ((x<y)?(x):(y))
    #define fo(i,a,b) for (reg i=a;i<=b;++i)
    #define fd(i,a,b) for (reg i=a;i>=b;--i)
    
    using namespace std;
    
    ll n,m;
    
    int main()
    {
    	//freopen("T1.in","r",stdin);
    	freopen("butterfly.in","r",stdin);
    	freopen("butterfly.out","w",stdout);
    	scanf("%lld%lld",&n,&m);
    	if (n&1)
    	{
    		if (m&1)
    		{
    			fo(i,1,n){fo(j,1,m)putchar('(');putchar('
    ');}
    			return 0;
    		}
    		fo(i,1,n){fo(j,1,m/2)putchar('(');fo(j,1,m/2)putchar(')');putchar('
    ');}
    		return 0;
    	}
    	if (m&1)
    	{
    		fo(i,1,n){fo(j,1,m)putchar(i<=n/2?'(':')');putchar('
    ');}
    		return 0;
    	}
    	if (n+m-4>max(n,m)+min(n,m)/2-1)
    	{
    		fo(j,1,m)putchar('(');putchar('
    ');
    		fo(i,2,n-1)
    		{
    			putchar('(');
    			fo(j,2,m-1)putchar(!((i+j)&1)?'(':')');
    			putchar(')'),putchar('
    ');
    		}
    		fo(j,1,m)putchar(')');putchar('
    ');
    		return 0;
    	}
    	if (n>m)
    	{
    		fo(i,1,n/2)
    		{
    			fo(j,1,m/2)putchar('('),putchar(')');
    			putchar('
    ');
    			fo(j,1,m/2)putchar('(');
    			fo(j,1,m/2)putchar(')');
    			putchar('
    ');
    		}
    		return 0;
    	}
    	fo(j,1,m)putchar('(');putchar('
    ');
    	fo(i,2,n-1)
    	{
    		//fo(j,1,m)putchar((!(i&1) && j<=m/2) || ((i&1) && j>m/2)?')':'(');
    		fo(j,1,m/2)putchar(!(i&1)?'(':')'),putchar(!(i&1)?')':'(');
    		putchar('
    ');
    	}
    	fo(j,1,m)putchar(')');putchar('
    ');
    	printf("!@##!@
    ");
    	return 0;
    }
    
  • 相关阅读:
    部署ArcGIS JS API 离线包(Tomcat与IIS)
    BootStrap入门教程 (一)
    找个些有用的网站(CSS生成)
    android 调用系统相机拍照 获取原图
    Android 拍照
    Android调用Webservice发送文件
    Android 开发添加控件事件的三种方式
    vim中的ctrl+s导致的“假死”、无响应、不接受输入
    Ubuntu下eclipse中运行Hadoop时所需要的JRE与JDK的搭配
    ubuntu下安装bin文件
  • 原文地址:https://www.cnblogs.com/horizonwd/p/11625640.html
Copyright © 2011-2022 走看看