Warning: session_start(): open(/tmp/sess_2a9f9f4a5c026859376f99dfe368e308, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239

Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Writing /data/wiki/data/cache/4/43994124a9168f34c03db2ff7cd35d94.captchaip failed

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/lib/tpl/dokuwiki/main.php on line 12
2020-2021:teams:wangzai_milk:codeforce_1392部分题解 [CVBB ACM Team]

用户工具

站点工具


2020-2021:teams:wangzai_milk:codeforce_1392部分题解

codeforces1392部分题解

1392E

题意

交互题,给出一个$n\times n$的地图,一个人从$(1,1)$走到$(n,n)$,只能往右或者往下走,现在你可以给每个格子赋值,有q组询问,每组询问给出路程权值和,问走过的路径。

题解

因为$n$很小,可以考虑二进制构造地图,同一行相邻成2,同一列相邻乘4即可。那么对于一个路程权值和,如果二进制是一段连续的1,那么他现在在向右走,如果出现了0就向下走。

代码

点击以显示 ⇲

点击以隐藏 ⇱

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[30][30];
int main() {
	int n,q;
	scanf("%d",&n);
	for (int i = 1;i<= n;i++)
		for (int j = 1;j<= n;j++)
		{
			if (i&1)printf("0%c",j==n?'\n':' ');
			else printf("%lld%c",1ll << (i+j-3),j==n?'\n':' ');
			fflush(stdout);
		}
	scanf("%d",&q);
	ll k;
	while (q--) {
		scanf("%lld",&k);
		printf("1 1\n");
		int x,y;
		x = 1;y = 1;
		fflush(stdout);
		for (int i = 0;i <= 2*n-3;i++)
		{
			if (k & (1ll<<i)) {
				if (x&1)x++;
				else y++;
			} else {
				if (x&1)y++;
				else x++;
			}
			printf("%d %d\n",x,y);
			fflush(stdout);
		}
	}
	return 0;
}


1392F

题意

题解

代码


1392G

题意

题解

代码


1392H

题意

题解

代码


2020-2021/teams/wangzai_milk/codeforce_1392部分题解.1599131178.txt.gz · 最后更改: 2020/09/03 19:06 由 infinity37