hdu_5738_Eureka(脑洞)
题目链接:hdu_5738_Eureka
题意:
这题感觉说不清楚,坑点有点坑,一不小心就会推出错误的公式,然后最重要的是你还不知道你推错了
题解:
这里贴一个官方的题解
Eureka
xjb推导一下可以知道best set一定是一些共线的点, 于是问题变成问有多少个子集共线. 首先, 把所有点按照(x,y)(x,y)双关键字排序, 然后枚举最左边的点ii, 那么其他点jj一定满足j > ij>i. 把在这个点右边的点都做下极角排序(按照\frac{1}{gcd(dx, dy)}(dx, dy)gcd(dx,dy)1(dx,dy)排序), 统计下共线的就好了. 需要注意下对重点的处理.
我没有排序,用的Hash来统计直线
#include<cstdio>
#include<cstring>
#include<algorithm>
#define F(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long LL;
int t,n,mod=1e9+;
const int M=(<<)-,N=1e3+;
struct E{int a,b,cnt;E *nxt;}*g[M+],pool[N],*cur=pool;int vis[M+],T;
void init_Hash(){T++,cur=pool;}
inline void ins(int a,int b,int cnt,E *p=NULL){
int u=(a*+b)&M;
if(vis[u]<T)vis[u]=T,g[u]=NULL;
for(p=g[u];p;p=p->nxt)if(p->a==a&&p->b==b){p->cnt+=cnt;return;}
p=cur++,p->a=a,p->b=b,p->cnt=cnt,p->nxt=g[u],g[u]=p;
}
struct point{int x,y;}p[];
int pw[];
int main(){
int t;
scanf("%d",&t);
pw[]=;
F(i,,)pw[i]=(pw[i-]<<)%mod;
while(t--){
scanf("%d",&n);
F(i,,n)scanf("%d%d",&p[i].x,&p[i].y);
LL ans=;
F(i,,n-){
int ct=;
init_Hash();
F(j,i+,n){
if(p[i].x==p[j].x&&p[i].y==p[j].y)ct++;
else{
int ax=p[i].x-p[j].x,ay=p[i].y-p[j].y,gd=__gcd(abs(ax),abs(ay));
ax/=gd,ay/=gd;
if(ax<)ax=-ax,ay=-ay;
if(ax==||ay==)if(ax==)ay=;else ax=;
ins(ax,ay,);
}
}
int seg=;
F(j,,M)if(vis[j]==T)
for(E *p=g[j];p;p=p->nxt)ans=(ans+pw[p->cnt+ct]-)%mod,seg++;
ans-=(1LL*(seg-)*(pw[ct]-))%mod;
ans=(ans+mod)%mod;
}
ans=(ans+mod)%mod;
printf("%lld\n",ans);
}
return ;
}
hdu_5738_Eureka(脑洞)的更多相关文章
- PHP基础班初学心得:脑洞实验-JS变量存储函数与return的一些问题
		
本人刚参加PHP基础班培训第一天,由于之前毫无基础,分享的心得可能不规范,方法也许也"旁门左道",不能保证质量,只作自己总结学习,也希望能帮助到同样是初学者的朋友们,共同进步. 在 ...
 - 「脑洞」图片转HTML(支持动画)
		
也许是受到很久以前看到的这玩意儿的原因:The Shapes of CSS 现在开脑洞写了个自动转换,顺便支持了动画……嗯,纯 CSS (:з」∠) 主要步骤就是用 Python 读图片,然后把像素全 ...
 - 【BZOJ-4592】脑洞治疗仪      线段树
		
4592: [Shoi2015]脑洞治疗仪 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 69 Solved: 38[Submit][Status] ...
 - 图论(KM算法,脑洞题):HNOI 2014 画框(frame)
		
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABPoAAANFCAIAAABtIwXVAAAgAElEQVR4nOydeVxTV/r/n9ertaJEC4
 - BCTF Web Code–考脑洞,你能过么?
		
BCTF Web Code–考脑洞,你能过么? 1)打开链接,是一张图片 根据URL特点推断可能是有文件包含漏洞 2) 将jpg参数修改成index.php,查看源代码,发现base64编码后的代码 ...
 - UVA1103-Ancient Messages(脑洞+dfs)
		
Problem UVA1103-Ancient Messages Accept: 1176 Submit: 6103 Time Limit: 3000 mSec Problem Descriptio ...
 - 【题解】Luogu P4344 [SHOI2015]脑洞治疗仪
		
原题传送门:P4344 [SHOI2015]脑洞治疗仪 前置芝士:珂朵莉树 窝博客里对珂朵莉树的介绍 没什么好说的自己看看吧 珂朵莉树好题啊 我一开始一直Re65 后来重构代码就ac了,或许是rp问题 ...
 - hdu 5308 (2015多校第二场第9题)脑洞模拟题,无语
		
题目链接:http://acm.hdu.edu.cn/listproblem.php?vol=44 题意:给你n个n,如果能在n-1次运算之后(加减乘除)结果为24的输出n-1次运算的过程,如果不能输 ...
 - 【BZOJ4592】[Shoi2015]脑洞治疗仪 线段树
		
[BZOJ4592][Shoi2015]脑洞治疗仪 Description 曾经发明了自动刷题机的发明家SHTSC又公开了他的新发明:脑洞治疗仪--一种可以治疗他因为发明而日益增大的脑洞的神秘装置. ...
 
随机推荐
- 【分享】bootstrap学习笔记
			
一.基础知识 1.整体架构 以响应式设计为理念,css组件.js插件+jquery.基础布局组件和12栅格系统搭建. 1.1响应式设计:结合media query查询,适应更多设备,自动适应用户的设备 ...
 - js移动端tap事件封装
			
这几天做项目,发现移动端需要触摸事件,而click肯定是不行的,于是我对tap事件封装进行了搜索,找到了一篇文章,原文地址如下:http://www.jb51.net/article/50663.ht ...
 - C# WebService 概念,创建及引用调用
			
1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求, ...
 - 如何使用kaptcha验证码组件
			
kaptcha是基于SimpleCaptcha的验证码开源项目. kaptcha是纯配置的,使用起来比较友好.如使用了Servlet,所有配置都在web.xml中.如果你在项目中使用了开源框架(比如S ...
 - msdn我告诉你
			
http://msdn.itellyou.cn/ 微软旗下所有的msdn订阅软件资源 均为ed2k资源 Business Solutions MSDN Library 工具和资源 应用程序 开发人员工 ...
 - Windows进程间通信(中)
			
二.文件映射 文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待.因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容. W ...
 - 解决VS2010中winsock.h与winsock2.h冲突(重复定义)——转载
			
解决VS2010中winsock.h与winsock2.h冲突(重复定义)——转载 当这两个头文件顺序颠倒时,编译会出现许多莫名其妙的错误,错误如下: 1>…\include\ws2def.h( ...
 - 手把手教你ranorex_android自动化测试第一个示例
			
要说android的自动化,那真是折腾死我了,从早期的monkeyrunner,到后来的robotium,再到最新的uiautomator,各有各的问题,总之性价比都不够高,不太适合我的使用场景.于是 ...
 - hdu 1020
			
//自信满满地交上去~~but...超时了 #include <iostream> #include <string.h> #include <stdio.h> u ...
 - 访问nginx-php页面的时候 报access denied.
			
访问页面的时候出现这个时access denied 只需到/usr/local/php/etc/php.ini中修改一下 把这个注释掉 ;open_basedir = 把这个值赋值为1 cgi.f ...