2019 CCPC - 网络选拔赛 A题^^

一个多月前打的,但是由于一点事情一直没写关于A题的反思,今天有空果断补上:
Problem Description

Bit operation is a common computing method in computer science ,Now we have two positive integers A and B ,Please find a positive integer C that minimize the value of the formula (A xor C) & (B xor C) .Sometimes we can find a lot of C to do this ,So you need to find the smallest C that meets the criteria .

For example ,Let’s say A is equal to 5 and B is equal to 3 ,we can choose C=1,3… ,so the answer we’re looking for C is equal to 1.

If the value of the expression is 0 when C=0, please print 1.

Input

The input file contains T test samples.(1<=T<=100)

The first line of input file is an integer T.

Then the T lines contains 2 positive integers, A and B, (1≤A,B<232)

Output

For each test case,you should output the answer and a line for each answer.
分别考虑P点作直角顶点和非直角顶点。
此篇文章想说map的用法,自定义小于运算符,使得在map中查找的时候,统一斜率的向量都会加起来,虽然在map中依然会保存多个不同的向量。
复杂度为n^2log(n)
下面是AC代码:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 2005;
struct P
{
ll x, y;
P(ll xx=0, ll yy=0) {
x = xx; y = yy;
}
P base()const{
if (x < 0 || (x == 0 && y < 0))return P(-x, -y);
return this;
}
bool operator<(const P&b)const {
P p1 = base(); P p2 =b.base();
//如果共线,考虑是相同的索引
return p1.x
p2.y<p1.y
p2.x;
}
P operator-(const P&b)const {
return P(x - b.x, y - b.y);
}
}a[N],qur[N];
int n, q;
map<P, int>m;
ll ans[N];
int main() {
while (~scanf("%d%d", &n, &q)) {
memset(ans,0,sizeof(ans));
for (int i = 0; i < n; i++)scanf("%lld%lld", &a[i].x, &a[i].y);
for (int i = 0; i < q; i++)scanf("%lld%lld", &qur[i].x, &qur[i].y);
for (int i = 0; i < q; i++) {
//求解作为直角顶点
m.clear();
for (int j = 0; j < n; j++)
m[a[j] - qur[i]]++;
for (int j = 0; j < n; j++) {
P p = a[j] - qur[i];
p = P(-p.y, p.x);
ans[i] += m.count§ ? m[p] : 0;
}
       //由于两条直角边都会枚举,所以除2
ans[i] /= 2;
}
for (int i = 0; i < n; i++) {
//作为非直角顶点,每次枚举点i,作为直角顶点,更新全部的q组询问点
m.clear();
for (int j = 0; j < n; j++) {
if (i != j)m[a[j] - a[i]]++;
}
for (int j = 0; j < q; j++) {
P p = qur[j] - a[i];
p = P(-p.y, p.x);
ans[j] += m.count§ ? m[p] : 0;
}
}
for (int i = 0; i < q; i++)printf("%lld\n", ans[i]);
}
return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户态和核心态的转换

用户态和内核态的转换 1&#xff09;用户态切换到内核态的3种方式 a. 系统调用 这是用户态进程主动要求切换到内核态的一种方式&#xff0c;用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作&#xff0c;比如前例中fork()实际上就是执行了一个创建新进程的系统调…

华为防火墙Edumon1000E配置

华为防火墙Edumon1000E&#xff0c;配置有四个光电互斥接口&#xff0c;为千兆状态防火墙。默认情况下所有区域之间不允许有流量经过。本文为Edumon1000E的基本配置&#xff0c;该基本配置适用一般企业级单机接入情况。配置一台防火墙主要包含以下几个步骤&#xff1a;1、配置端…

操作系统进程调度算法图解(FCFS、轮转、SPN、SRT、HRRN、反馈)

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.csdn.net/woshiwanghao_hi/article/details/13004507 FCFS: 先来先服务&#xff0c;也可以称为先进先出 轮转…

安装Ubuntu之后一定要安装Docky

2019独角兽企业重金招聘Python工程师标准>>> 安装Ubuntu之后一定要安装Docky&#xff0c;然后把面板隐藏&#xff0c;真是太漂亮了&#xff01; 图片太大&#xff0c;传不上来&#xff0c;传到百度上&#xff0c;又不让引用&#xff0c;还是百度看吧&#xff1a; 我…

操作系统中调度算法(FCFS、RR、SPN、SRT、HRRN)

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.csdn.net/xieminyao123/article/details/79116985 决策模式 决策模式说明选择函数在执行的瞬间的处理方式&a…

操作系统学习总结(超赞!!!)

我是技术搬运工,好东西当然要和大家分享啦.原文地址 操作系统基本特征 1. 并发 并发性是指宏观上在一段时间内能同时运行多个程序&#xff0c;而并行性则指同一时刻能运行多个指令。 并行需要硬件支持&#xff0c;如多流水线或者多处理器。 操作系统通过引入进程和线程&#xf…

Eclipse安装

1.下载Eclipse及其语言包 打开http://www.eclipse.org/downloads/&#xff0c;下载相应的文件。如下载Eclipse Classic版 打开http://www.eclipse.org/babel/下载相应语言包 2.安装Eclipse Eclipse直接解压&#xff0c;语言包直接解压后覆盖Eclipse解压出来的文件夹中的同名文件…

操作系统的SPOOLING技术

SPOOLING技术&#xff08;Simultaneous Peripheral Operating On Line) 同时联机外围操作技术&#xff0c;它是关于慢速字符设备如何与计算机主机进行数据交换的一种技术&#xff0c;通常又称假脱机技术。 在多道程序环境下&#xff0c;利用多道程序中的一道或者两道程序来模拟…

每日学习记录5.5

今天把帝国cms的sitmap问题解决了&#xff0c;通过实际操作&#xff0c;感觉对网页前台布局还是有了一定的了解。今天的学习是继续进行DIVCSS的初步学习。以适合公司网站改版。同时从今天起的学习期间&#xff0c;保证一天一篇至少50字的流水账。近日准备发表博客&#xff1a;“…

独立磁盘冗余阵列:RAID

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.csdn.net/fsx2550553488/article/details/79819164 RAID RAID&#xff1a;独立磁盘冗余阵列&#xff08;Redun…

使用south实现Django的数据库升级迁移

Technorati 标签: django,south,数据库迁移Ruby有牛哄哄的Rails Migration实现数据的升级和迁移&#xff0c;django呢&#xff1f; 有south。 已有的应用要支持south&#xff08;开发版&#xff09; 编辑settings.py , 把 ‘south’ 放到INSTALLED_APPS 中 manage.py syncdb 把…

task2 EDA数据分析

目标 了解&#xff0c;验证数据集 了解变量关系&#xff0c;与预测值之间关系 数据处理、特征工程 数据探索性分析 EDA探索性数据分析 通过EDA可实现: 1. 得到数据的直观表现 2. 发现潜在的结构 3. 提取重要的变量 4. 处理异常值 5. 检验统计假设 6. 建立初步…

lua中文教程(第一章 起点)

一 全局变量 全局变量不需要声明&#xff0c;给一个变量赋值后即创建了这个全局变量&#xff0c;访问一个没有初始化的全局变量也不会出错&#xff0c;只不过得到的结果是:nil 如果想删除一个全局变量&#xff0c;只需要将变量赋值为nil 二 词法约定 1 标识符&#xff1a;字母或…

task2 EDA探索性数据分析

1、赛题数据赛题以预测二手车的交易价格为任务&#xff0c;数据集报名后可见并可下载&#xff0c;该数据来自某交易平台的二手车交易记录&#xff0c;总数据量超过40w&#xff0c;包含31列变量信息&#xff0c;其中15列为匿名变量。为了保证比赛的公平性&#xff0c;将会从中抽…

Liaoning Province--保三成功

现在做什么事情怎么都有遗憾&#xff0c;从小到大&#xff0c;每件事情都有遗憾...... 周六&#xff0c;在东电宾馆报道的&#xff0c;刚进宾馆&#xff0c;接待人员对我说有个人认识你&#xff0c;我诧异&#xff0c;看到后我挨个想&#xff0c;我想出来他是天之痕了&#xff…

2021-06-10

局部搜索算法是一种简单的贪心搜索算法&#xff0c;是解决最优化问题的一种启发式算法&#xff0c;该算法每次从当前解的临近解空间中根据启发函数选择一个最优解&#xff08;也不一定是最优解&#xff09;作为当前解&#xff0c;直到达到一个局部最优解。本文以求解八皇后问题…

用JavaScript嵌入你的SWF

用JavaScript嵌入你的SWFswfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfurl, flashvars, params, attributes)有5个必须的参数和4个可选的参数&#xff1a;swfUrl&#xff08;String&#xff0c;必须的&#xff09;指定SWF的URL。 id&#xff08;S…

.NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(二)

引言 随着CPU多核的普及&#xff0c;编程时充分利用这个特性越显重要。上篇首先用传统的嵌套循环进行数组填充&#xff0c;然后用.NET 4.0中的System.Threading.Tasks提供的Parallel Class来并行地进行填充&#xff0c;最后对比他们的性能。本文将深入分析Parallel Class并借机…

Ghost安装之后,键盘出现字符出现乱码

今天我安装了G版本的WinServer2003,安装完成之后键盘打字出现乱字符,后来终于发现原来我的输入法模式为数字模式,按FN&#xff0b;insert可以切换回来,问题就解决了.转载于:https://blog.51cto.com/yaojian/314847

.net框架读书笔记---CLR内存管理\垃圾收集(二)

前几天学习了CLR垃圾收集原理和基本算法&#xff0c;但是那些是仅仅相对于托管堆而言的&#xff0c;任何非托管资源的类型&#xff0c;例如文件、网络资源等&#xff0c;都必须支持一种称为终止化&#xff08;finalization&#xff09;的操作。 终止化 终止化操作允许一种资源在…