Codeforces.744B.Hongcow's Game(交互 按位统计)
\(Description\)
一个\(n\times n\)的非负整数矩阵\(A\),保证\(A_{i,i}=0\)。现在你要对每个\(i\)求\(\min_{j\neq i}A_{i,j}\)(每一行除\(A_{i,i}\)的最小值)。你可以进行不超过\(20\)次询问,每次询问你给出下标集合\(\{w_1,w_2,\ldots,w_k\}\),交互库会对每个\(i\)返回\(\min_{j=1}^kA_{i,w_j}\)(每一行给出列的最小值)。
\(n\leq 1000,A_i\leq 10^9\)。
\(Solution\)
常见思路:\(i\neq j\)即\(i,j\)至少有一位不同。
对每一位枚举\(0/1\),求所有下标该位为\(0/1\)的最小值。对于每个\(i\)把与其某位不同的数全部取\(\min\)即可。
#include <cstdio>
#include <cctype>
#include <algorithm>
#define gc() getchar()
const int N=1005;
int n,A[N][13][2],tag[N];
inline int read()
{
int now=0;register char c=gc();
for(;!isdigit(c);c=gc());
for(;isdigit(c);now=now*10+c-'0',c=gc());
return now;
}
int Query(int s,int bit)
{
int t=0;
for(int i=1; i<=n; ++i) if(tag[i]==s) ++t;
printf("%d\n",t);
for(int i=1; i<=n; ++i) if(tag[i]==s) printf("%d ",i);
putchar('\n'); fflush(stdout);
for(int i=1; i<=n; ++i) A[i][bit][s]=read();
}
int main()
{
n=read();
for(int i=0; 1<<i<=n; ++i)//从0啊→_→
{
for(int j=1; j<=n; ++j) if(j>>i&1) tag[j]=1;
Query(0,i), Query(1,i);
for(int j=1; j<=n; ++j) tag[j]=0;
}
puts("-1");//看格式→_→先-1,输出到一行
for(int i=1; i<=n; ++i)
{
int ans=1e9;
for(int bit=0; 1<<bit<=n; ++bit)
ans=std::min(ans,A[i][bit][(i>>bit&1)^1]);
printf("%d ",ans);
}
fflush(stdout);
return 0;
}
Codeforces.744B.Hongcow's Game(交互 按位统计)的更多相关文章
- Codeforces.835E.The penguin's game(交互 按位统计 二分)
题目链接 \(Description\) 有一个长为\(n\)的序列,其中有两个元素为\(y\),其余全为\(x\).你可以进行\(19\)次询问,每次询问你给出一个下标集合,交互库会返回这些元素的异 ...
- 牛客国庆集训派对Day4.B.异或求和(按位统计)
题目链接 刷牛客一战到底做到的,感觉还挺有趣... \(Description\) 求给定\(n\)及序列\(A_i\),求\[\sum_{i\lt j\lt k}(A_i\oplus A_j)(A_ ...
- codeforces766E Mahmoud and a xor trip(按位统计+树形DP)
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- poj 3105 Expectation 按位统计
题意: 给n,求sum(i^j)/(n^2),0<=i,j<n.n<10^9 分析: 暴力n^2算法肯定超时.这是logn按位统计算法:按位先算出0出现的个数x,则1出现的个数为n- ...
- Codeforces 242E:XOR on Segment(位上的线段树)
http://codeforces.com/problemset/problem/242/E 题意:给出初始n个数,还有m个操作,操作一种是区间求和,一种是区间xor x. 思路:昨天比赛出的一道类似 ...
- Codeforces Round #626 Div2 D. Present(位掩码,二分)
题目链接:https://codeforces.com/contest/1323/problem/D 题意:给了大小为4e5的数组a,其中1<=ai<=1e7.求所有点对和的异或和,即: ...
- codeforces 744C Hongcow Buys a Deck of Cards
C. Hongcow Buys a Deck of Cards time limit per test 2 seconds memory limit per test 256 megabytes in ...
- codeforces 558/C Amr and Chemistry(数论+位运算)
题目链接:http://codeforces.com/problemset/problem/558/C 题意:把n个数变成相同所需要走的最小的步数易得到结论,两个奇数不同,一直×2不可能有重叠枚举每个 ...
- Codeforces 744C Hongcow Buys a Deck of Cards 状压dp (看题解)
Hongcow Buys a Deck of Cards 啊啊啊, 为什么我连这种垃圾dp都写不出来.. 不是应该10分钟就该秒掉的题吗.. 从dp想到暴力然后gg, 没有想到把省下的红色开成一维. ...
随机推荐
- Python内置模块-日志模块(logging)常见用法
Python内置模块-日志模块(logging)常见用法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.初识logging模块 #!/usr/bin/env python #_ ...
- 内网服务器通过Squid代理访问外网
环境说明 项目整体需部署Zabbix监控并配置微信报警,而Zabbix Server并不能访问外网,故运维小哥找了台能访问外网的服务器做Suqid代理,Zabbix Server服务器通过代理服务器访 ...
- JAVA io 包小结
IO 无非读写 I --> Reader O--> Writer 为了方便字符 或者 文本文件的 操作创造出了 字符流 尤其是 缓冲字符输入输出流(BufferedReader,Buff ...
- 如何用javascript获取和设置css3属性
==================获取======================== 我想到的第一个思路 var test = document.getElementById('test'); c ...
- 一致性哈希算法介绍,及java实现
应用场景 在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin).哈希算法(HASH).最少连接算法(Least Connection).响应速度算法(Res ...
- js 正则学习小记之匹配字符串字面量
今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享. 关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配.(因为我想学完之后写个语法高亮练手,所以用js代码当作例子) va ...
- html5 canvas从圆开始
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 1、Saltstack简介及安装配置
1.Saltstack简介 Saltstack是基于Python开发的一套C/S架构,具备Puppet.Ansible功能于一身的配置管理工具,功能十分强大,各模块融合度及复用性极高:使用号称世界上最 ...
- netty学习总结(一)
netty是一个nio框架,将java的nio进行了一个封装,形成了一个高性能,高可用的网络编程框架,很多的框架都是基于netty的,所以学好netty是很有用的,而且netty本身的代码结构设计,以 ...
- 【源码阅读】Mimikatz相关资料
Mimikatz GitHub (源码) https://github.com/gentilkiwi/mimikatz Mimikatz GitHub Wiki (包含了一些说明文档) https:/ ...