P5461 赦免战俘 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题解 P5461 【赦免战俘】 - Flandre_495 的博客 - 洛谷博客 (luogu.com.cn)
题解 P5461 【赦免战俘】 - Ritanlisa 的博客 - 洛谷博客 (luogu.org)
通用解法是分治/模拟+递归,但这两种解法直接推出公式,很有意思。
题解1的主要思路:
每一个数字都是它上方数字加上右上方数字再模2。其实就是不进位加法,异或一下就好了。
a[i][j] = a[i-1][j] ^ a[i-1][j+1];
根据题解2所写的代码:
#include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<b;i++) using namespace std; int n,m; int main(){ cin>>n; m=(1<<n); rep(i,0,m){ rep(j,0,m){ cout<<((i|j)==((1<<n)-1)?1:0)<<' '; } cout<<endl; } return 0; }
标签:P5461,洛谷,推导,题解,战俘,luogu,赦免 来源: https://www.cnblogs.com/infocodez/p/14994288.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。