[COCI2015-2016#4] DEATHSTAR
题目描述
你排除万难,潜入了 Death Star。要想摧毁它,你需要一个长度为 n n n 的数组 a a a,以启动 Death Star 的自我毁灭指令。虽然你不知道这个数组是什么,但好在,你的老朋友 Darth Vader 事先给了你一个 n n n 阶方阵 b b b。在这个方阵中,第 i i i 行第 j j j 列上的元素 b i , j = a i and a j b_{i,j}=a_i\operatorname{~and~} a_j bi,j=ai and aj,其中 and \operatorname{and} and 表示按位与运算。正当你以为你可以通过这个方阵直接得出数组 a a a 时,你发现主对角线上的所有元素被激光剑给毁坏了,你无法读出这些元素的值,只能暂时以 0 0 0 代替。
现在,请你根据其他没有被毁坏的元素的数值求出任意一个满足要求的数组 a a a。
输入格式
第一行输入一个整数
n
n
n,表示方阵
b
b
b 的阶数。
随后
n
n
n 行,每行输入
n
n
n 个整数,描述方阵
b
b
b。
输出格式
输出一行 n n n 个整数,表示满足条件的数组 a a a。数组中的每个元素必须是不超过 1 0 9 10^9 109 的非负整数。
数据保证有解,但不保证有唯一解。
样例 #1
样例输入 #1
3
0 1 1
1 0 1
1 1 0
样例输出 #1
1 1 1
样例 #2
样例输入 #2
5
0 0 1 1 1
0 0 2 0 2
1 2 0 1 3
1 0 1 0 1
1 2 3 1 0
样例输出 #2
1 2 3 1 11
提示
【样例 1 解释】
不难看出,满足要求的一个数组 a = [ 1 , 1 , 1 ] a=[1,1,1] a=[1,1,1],但请注意,这并不是唯一可能的答案。
【数据范围】
对于所有数据, 1 ⩽ n ⩽ 1000 1\leqslant n\leqslant 1000 1⩽n⩽1000, 0 ⩽ b i , j ⩽ 1 0 9 0\leqslant b_{i,j}\leqslant 10^9 0⩽bi,j⩽109。
本题开启 Special Judge。如果你有可以 hack 供题人自行编写的 checker 的数据或者对 checker 有改进意见,欢迎在本题下方讨论区提出。
【题目来源】
本题来源自 COCI 2015-2016 CONTEST 4 T3 DEATHSTAR,按照原题数据配置,满分 100 100 100 分。
由 Eason_AC 翻译整理提供。
C++实现
#include<bits/stdc++.h>
using namespace std;
int b[1005][1005],a[1005],buyaochaotijie=0;
int main(){
ios::sync_with_stdio(false);
int n;
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>b[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
a[i]|=b[i][j];
}
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return buyaochaotijie;//轻松AC
}
后续
接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容
标签:信奥,int,628,样例,数组,打卡,2016,方阵,leqslant From: https://blog.csdn.net/rogeliu/article/details/145219329