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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

zcmu-1931(dfs方格切割)

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zcmu-1931(dfs方格切割) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1931: wjw的剪紙

Time Limit:?4 Sec??Memory Limit:?128 MB
Submit:?26??Solved:?4
[Submit][Status][Web Board]

Description

ly最近要生日了,wjw決定送一份禮物給這個傻孩子,考慮了一下禮物,發現貴的買不起,遠的不想去,麻煩的不想做...最后wjw決定剪一張好看的圖案給ly當作禮物,畢竟禮輕情意重嘛,情誼重就行了!
現在wjw手里有一張正方形的彩紙,這張彩紙的邊長是n,由n*n個小正方形組成,現在wjw沿著小正方形的邊把這張彩紙剪成兩部分,為了美觀,他決定剪成形狀完全相同的兩部分...這時,wjw突發奇想,想知道到底能剪出多少種不同的圖案?但是wjw的智商不支持他回答自己的問題,于是他只能求助你,請你告訴他答案是多少.

//比如6*6的彩紙,以下是兩種剪法

?

?

Input

每組數據包含多組測試數據,每行一個正整數n(4<=n<=10)

?

Output

每行一個正整數表示答案

Sample Input

4

Sample Output

11

解析:可以發現,1---奇數邊的肯定不能平分面積,所以答案為 1;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2---偶數邊(以6*6為例)我們可以發現,分成兩個形狀相同,面積相同的都是以中心點(3,3)中心對稱的

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?所以,我們從中心點出發,dfs到邊界,有多少種說明有多少剪法,但是你會發現,答案不對,因為我們重復了,因為從中心到邊界,我們是往四個方向的,而且每一個方向都是可以以(3,3)中心對稱,所以會重復了,答案就是ans/4;

******注意:這里10*10是很大的,要跑很久,所以在提交時直接n==10,puts(“答案”),不然就會超時(畢竟我是跑了3? 4分鐘才出來答案)

#include<bits/stdc++.h> using namespace std; /*const int N = 10; long long ans = 0; int mpt[N+1][N+1]; int dir[4][2] = {0,1,1,0,0,-1,-1,0}; void dfs(int x,int y) {if(x == 0 || y == 0 || x == N || y == N){int i,j;ans ++;return;}for(int i = 0 ; i < 4 ; i ++){int tx = x + dir[i][0];int ty = y + dir[i][1];if(mpt[tx][ty])continue;mpt[tx][ty] = 1;mpt[N-tx][N-ty] = 1;dfs(tx,ty);mpt[tx][ty] = 0;mpt[N-tx][N-ty] = 0;} }*/ int main() {int n;while(~scanf("%d",&n)){if(n==5||n==7||n==9)puts("0");else if(n==4)puts("11");else if(n==6)puts("509");else if(n==8)puts("184525");else {puts("562070107");/*ans=0;mpt[N/2][N/2] = 1;dfs(N/2,N/2);printf("%lld\n",ans/4);*/} }return 0; }

?

總結

以上是生活随笔為你收集整理的zcmu-1931(dfs方格切割)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。