风速传感器原理,八方来财树,贾九翔
$n$个数,初始时不知道他们的值。
每次可以询问两个数的和,在$n$次询问内确定他们的值
$n \leqslant 5000$
首先询问出$1, 2$,$1, 3$,$2, 3$
解个方程确定他们的下标
对之后的依次询问$1, i$,解出$i$的值
#include<cstdio> using namespace std; int N, aaa[3], ans[5001], a, b, c; int main() { scanf("%d", &N); puts("? 1 2"); fflush(stdout); scanf("%d", &aaa[0]); puts("? 2 3"); fflush(stdout); scanf("%d", &aaa[1]); puts("? 1 3"); fflush(stdout); scanf("%d", &aaa[2]); int aa = a, bb = b, cc = c, p; b = (aaa[0] + aaa[1] - aaa[2]) / 2; a = aaa[0] - b; c = aaa[1] - b; ans[1] = a; ans[2] = b; ans[3] = c; for(int i = 4; i <= N; i++) { printf("? 1 %d\n", i); fflush(stdout); scanf("%d", &p); ans[i] = p - a; } printf("! "); for(int i = 1; i <= N; i++) printf("%d ", ans[i]); return 0; } /* 5 10 7 5 9 9 4 6 1 5 5 */
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论