zoukankan      html  css  js  c++  java
  • 洛谷 P5461 赦免战俘

    洛谷 P5461 赦免战俘

    传送门

    思路

    洛谷7月月赛第一题

    着实是一道大水题,然后我月赛的时候没做出来......

    就是一道大模拟题呀,直接dfs就好了,我是反着处理的,所以最后要输出(1-a[i][j])

    #include <bits/stdc++.h>
    #define N 1 << 10
    using namespace std;
    
    int a[N][N], n;
    
    void solve(int x, int y, int l) { //x、y表示起点的横纵左边,l表示长度
    	if(a[x][y]) return;//sd的剪枝?
    	for(int i = x; i <= x + l - 1; i++) {
    		for(int j = y; j <= y + l - 1; j++) {
    			a[i][j] = 1;
    		}
    	}
    	if(l == 1) return;//边界条件
    	//递归其他三个区间
    	solve(x + l, y, l >> 1);
    	solve(x, y + l, l >> 1);
    	solve(x + l, y + l, l >> 1);
    }
    
    int main() {
    	scanf("%d", &n);
    	int p = 1 << n;
    	solve(1, 1, p / 2);
    	for(int i = 1; i <= p; i++) {
    		for(int j = 1; j <= p; j++) {
    			cout << 1 - a[i][j] << ' ';
    		}
    		cout << '
    ';
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    设计模式基础:类及类关系的UML表示
    SQL 经典语句
    网络存储
    jstack Dump
    Windows上模拟Linux环境的软件Cygwin
    竞争条件
    Java volatile关键字
    java原子操作
    java死锁小例子
    死锁四个必要条件
  • 原文地址:https://www.cnblogs.com/loceaner/p/11186787.html
Copyright © 2011-2022 走看看