题目链接
题目大意
一直都没读太懂,看了题解之后才知道它的意思。
假设有一个数字矩阵,每次可以向下或向右,问从左上角走到右下角的数字和最多是多少,那么显然这是一个dp。
现在不问你数字和,而是把路径上的所有数都&起来,如果还是dp显然是错的。假设dp的到的结果是x,正确答案是y。
现在给定k,需要你构造一个矩阵,使得|y-x|=k
题目思路
感觉看了标称一下就懂了
代码
#include<set>
#include<map>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#define fi first
#define se second
#define debug printf("I am here\n");
using namespace std;
typedef long long ll;
const int maxn=2e5+5,mod=998244353;
int k;
signed main(){
scanf("%d",&k);
printf("2 3\n");
printf("%d %d %d\n",(1<<17)+k,(1<<17),0);
printf("%d %d %d",k,(1<<17)+k,k);
return 0;
}