最简单的手机网站制作,正规软件开发培训机构,乐清做网站的,建网站开发语言对比#x1f30f;博客主页#xff1a;PH_modest的博客主页 #x1f6a9;当前专栏#xff1a;每日一题 #x1f48c;其他专栏#xff1a; #x1f534; 每日反刍 #x1f7e1; C跬步积累 #x1f7e2; C语言跬步积累 #x1f308;座右铭#xff1a;广积粮#xff0c;缓称… 博客主页PH_modest的博客主页 当前专栏每日一题 其他专栏 每日反刍 C跬步积累 C语言跬步积累 座右铭广积粮缓称王 一.题目描述 题目大意 塞浦路斯的天气非常炎热。因此Theofanis 将此视为创建一家冰淇淋公司的契机。 他把冰淇淋锁在大储藏室里防止其他冰淇淋生产商进入。然而他忘记了密码。幸运的是这把锁对健忘的人有特殊的功能 要打开这把锁你需要找到一个由 n n n 个元素组成的数组 a a a KaTeX parse error: Expected EOF, got at position 11: 0 \le a_i ̲lt; 2^{30} 和 M i , j a i ∣ a j M_{i,j} a_i | a_j Mi,jai∣aj 对于所有 i ≠ j i \neq j ij 其中 ∣ | ∣ 表示 bitwise OR 运算。 这个锁有一个 bug有时它会给出没有任何解的表格。在这种情况下冰激凌将永远保持冰冻状态。 你能找到一个数组来打开锁吗 题目链接
B. StORage roomCodeforces Round 912 (Div. 2)
二.思路分析 首先需要知道 | 操作符的特点只有两个数对应位上都是0时结果的对应才是0否则是1所以我们可以假设xi为0x7fffffff每一位上都是1然后用这个数与结果进行操作操作结束之后就会把肯定是0的位上的1变成0觉得难理解的可以试着用样例模拟一下 三.代码展示
//https://codeforces.com/contest/1903/problem/B
//两个数|如果结果的某一位为0那么这两个数对应的位也为0
//
#includeiostream
#includealgorithm
#includestring
#includedeque
#includemap
#includequeue
#includevector
#includecstring
#define int long long
using namespace std;int s[2000][2000];
int v[200020];
void solve()
{memset(v,0x7fffffff,sizeof(v));int n;cinn;for(int i0;in;i){for(int j0;jn;j){cins[i][j];}}for(int i0;in;i){for(int j0;ji;j){v[i]s[i][j];}for(int ji1;jn;j){v[i]s[i][j];}}int flag1;for(int i0;in;i){for(int j0;jn;j){if(i!j(v[i]|v[j])!s[i][j]){flag0;break;}}if(flag0){break;}}if(flag0){coutNO\n;}else if(n1){coutYes\n;cout1\n;}else{coutYes\n;for(int i0;in;i){coutv[i] ;}cout\n;}
}
signed main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cint;while(t--){solve();}return 0;
}
最后 每日一题系列旨在养成刷题的习惯所以对代码的解释并不会特别详细但足够引导大家写出来选的题目都不会特别难但也不是特别简单比较考验大家的基础和应用能力我希望能够将这个系列一直写下去也希望大家能够和我一起坚持每天写代码。 之后每个星期都会不定期更新codeforces和atcoder上的题目想要学习算法的友友们千万别错过了有什么疑问欢迎大家在评论区留言或者私信博主 在这里送大家一句话广积粮缓称王