• loj 3236 [POI2019 R1] Układ scalony


    loj 3236 [POI2019 R1] Układ scalony

    https://loj.ac/problem/3236

    https://loj.ac/submission/747558

    Snipaste_2020-02-22_11-56-59.png

    Snipaste_2020-02-22_11-57-13.png

    Tutorial

    IMG_20200222_143029.jpg

    考虑一种特殊情况 (n,m) 均为偶数且 (k) 较小的情况.

    Snipaste_2020-02-22_14-35-48.png

    (n,m) 均为偶数时,合法的 (k in [n+m-1, nm-1])

    (n,m) 不均为偶数时,合法的 (k in [n+m-2,nm-1])

    Code

    #include <cstdio>
    #include <iostream>
    #define debug(...) fprintf(stderr,__VA_ARGS__)
    using namespace std;
    inline char nc()
    {
    	return getchar();
    	static char buf[100000],*l=buf,*r=buf;
    	return l==r&&(r=(l=buf)+fread(buf,1,100000,stdin),l==r)?EOF:*l++;
    }
    template<class T> void read(T &x)
    {
    	x=0; int f=1,ch=nc();
    	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=nc();}
    	while(ch>='0'&&ch<='9'){x=x*10-'0'+ch;ch=nc();}
    	x*=f;
    }
    const int maxn=1000+5;
    const int maxm=1000+5;
    int n,m,k;
    bool f;
    bool vis[maxn][maxm];
    inline void adde(int a,int b,int c,int d)
    {
    //	debug("%d %d %d %d
    ",a,b,c,d);
    	if(f) swap(a,b),swap(c,d);
    	printf("%d %d %d %d
    ",a,b,c,d);
    }
    int main()
    {
    	read(n),read(m),read(k);
    	if(k>=n*m||k<n+m-1-((n|m)&1)) {puts("NIE"); return 0;}
    	puts("TAK");
    	if(m&1) swap(n,m),f=1;
    	int mid=(n>>1)+1;
    	k-=n+m-2;
    	int a=min(k,(mid-1)*(m-1)),b=k-a;
    	if((~n&1)&&k<m-1) --a;
    //	debug("%d %d
    ",n,m);
    	for(int x=1,y=1;a--;)
    	{
    		int _x=x,_y=(x&1)?y+1:y-1;
    		if(_y==m+1) _y=m,++_x;
    		if(_y==1) _y=2,++_x;
    		adde(x,y,_x,_y);
    		x=_x,y=_y,vis[x][y]=1;
    	}
    	for(int x=n,y=m;b--;)
    	{
    		int _x=x,_y=((n-x)&1)?y+1:y-1;
    		if(_y==0) _y=1,--_x;
    		if(_y==m) _y=m-1,--_x;
    		adde(x,y,_x,_y);
    		x=_x,y=_y,vis[x][y]=1;
    	}
    	for(int i=1;i<m;++i) adde(mid,i,mid,i+1);
    	for(int i=1;i<n;++i) for(int j=1;j<=m;++j)
    	{
    		if(!vis[i][j]&&!vis[i+1][j]) adde(i,j,i+1,j);
    	}
    	return 0;
    }
    
  • 相关阅读:
    求原根
    koa2-router中间件来请求数据获取
    koa2 快速开始
    如何修改host
    bzoj 2480——扩展BSGS
    bzoj 4128: Matrix ——BSGS&&矩阵快速幂&&哈希
    Ubuntu 16.04LTS 安装和配置Bochs
    2019ICPC徐州网络赛 A.Who is better?——斐波那契博弈&&扩展中国剩余定理
    求十亿内所有质数的和
    MYSQL的随机查询的实现方法
  • 原文地址:https://www.cnblogs.com/ljzalc1022/p/13191356.html
Copyright © 2020-2023  润新知