日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【uoj#225】[UR #15]奥林匹克五子棋 构造

發(fā)布時間:2025/7/25 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【uoj#225】[UR #15]奥林匹克五子棋 构造 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述

兩個人在 $n\times m$ 的棋盤上下 $k$ 子棋,問:是否存在一種平局的情況?如果存在則輸出一種可能的最終情況。

輸入

第一行三個正整數(shù) $n,m,k$ ,意義如前所述。

輸出

如果雙方不能打成平局,輸出 $?1$ ;

否則輸出 $n×m$ 行,第 $i$ 行兩個整數(shù) $x_i,y_i$ 表示第 $i$ 次落子的坐標(biāo)為第 $x_i$ 行第 $y_i$ 列。黑子先行,所以 $i$ 為奇數(shù)時為黑方落子,$i$ 為偶數(shù)時白方落子。坐標(biāo)需滿足 $1≤x_i≤n,1≤y_i≤m$ 。

樣例輸入

4 4 3

樣例輸出

1 2
1 1
1 4
1 3
2 1
2 3
2 2
2 4
3 3
3 2
3 4
3 1
4 1
4 4
4 3
4 2


題解

構(gòu)造

顯然 $k=1$ 時無解。

$k=2$ 當(dāng)且僅當(dāng) $\text{min}(n,m)=1$ 時有解。因為若 $n>1,m>1$ ,對于一個 $2\times 2$ 的部分一定無法避免兩個連續(xù)。

當(dāng) $k\ge 3$ 時,可以構(gòu)造出如下的棋盤:

顯然這其中包含連續(xù)的棋子數(shù)最多只有 $2$ 。

那么是否滿足O與X相差不超過1呢?

容易發(fā)現(xiàn)只有 $n\mod 4=2$ (此時第一列會多填兩個O)且 $m$ 為奇數(shù)時不成立,這種情況下把棋盤向上平移一排(即第一列從上至下是OXXOOXXOO...XXOOX)即可。

時間復(fù)雜度 $O(nm)$

#include <cstdio> int ax[125010] , ay[125010] , at , bx[125010] , by[125010] , bt; int main() {int n , m , k , i , j;scanf("%d%d%d" , &n , &m , &k);if(k == 1) puts("-1");else if(k == 2){if(n > 1 && m > 1) puts("-1");elsefor(i = 1 ; i <= n ; i ++ )for(j = 1 ; j <= m ; j ++ )printf("%d %d\n" , i , j);}else{if((n & 3) == 2 && m & 1){for(i = 1 ; i <= n ; i ++ ){for(j = 1 ; j <= m ; j ++ ){if(((i & 3) > 1) == (j & 1)) ax[++at] = i , ay[at] = j;else bx[++bt] = i , by[bt] = j;}}}else{for(i = 1 ; i <= n ; i ++ ){for(j = 1 ; j <= m ; j ++ ){if(((i & 3) && ((i & 3) < 3)) == (j & 1)) ax[++at] = i , ay[at] = j;else bx[++bt] = i , by[bt] = j;}}}for(i = 1 ; i <= n * m ; i ++ ){if(i & 1) printf("%d %d\n" , ax[at] , ay[at]) , at -- ;else printf("%d %d\n" , bx[bt] , by[bt]) , bt -- ;}}return 0; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/GXZlegend/p/8191363.html

總結(jié)

以上是生活随笔為你收集整理的【uoj#225】[UR #15]奥林匹克五子棋 构造的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。