Codeforces Round #630 (Div. 2) D. Walk on Matrix

思路
其實就是一個構造題
我們考慮位運算&的性質 二進制位上一樣 纔能有貢獻
所以我們可以這樣構造

q+k q 0
k q+k k
這樣構造的話 題中的圖的僞代碼的值跑出來就是(q+k)&(q)&(q+k)&(k)=0
那麼按照我們選擇的話就i是 (q+k)&(k)&(q+k)&(k)=k
這樣就滿足要求了
其中q爲大於k的二次冪即可

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int k;
    cin>>k;
    cout<<2<<" "<<3<<endl;
    cout<<(1<<17)+k<<" "<<(1<<17)<<" "<<0<<endl;
    cout<<k<<" "<<(1<<17)+k<<" "<<k<<endl;
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章