HDU5738 Eureka
来源:互联网 发布:好压mac 编辑:程序博客网 时间:2024/06/05 01:53
题目链接
分析
代码
#define mod 1000000007#define maxm#define maxn 1010int a[maxn], b[maxn];map<pair<int, int>, int> mp;ll pow_mod(ll x) { ll a = 2, ans = 1; while (x) { if (x & 1) ans = ans * a % mod; a = a * a % mod; x >>= 1; } return ans % mod;}int main(){/* #ifdef ONLINE_JUDGE freopen("aplusb.in", "r", stdin); freopen("aplusb.out", "w", stdout); #endif*/ // ios::sync_with_stdio(false); int t, n; scanf("%d", &t); while (t--) { scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d%d", &a[i], &b[i]); } ll ans = 0; //printf("%d\n", __gcd(0, -9)); for (int i = 0; i < n; i++) { mp.clear(); int cnt = 0, ccnt = 0; for (int j = i + 1; j < n; j++) { if (a[i] == a[j] && b[j] == b[i]) { ccnt++; } else if (a[i] == a[j]) { cnt++; } else { int x = __gcd(b[i] - b[j], a[i] - a[j]); int y = (b[i] - b[j]) / x; int z = (a[i] - a[j]) / x; if (y <= 0 && z < 0) { y = -y, z = -z; } else if (y < 0) { y = -y, z = -z; } mp[make_pair(y, z)]++; } } ll pp = pow_mod(ccnt); ans = (ans + pp - 1 + mod) % mod; ans = (ans + pp * ((pow_mod(cnt) - 1 + mod) % mod) % mod) % mod; for (auto it : mp) { int x = it.second; ans = (ans + pp * ((pow_mod(1ll * x) - 1 + mod) % mod) % mod) % mod; } } printf("%lld\n", ans); }}
阅读全文
0 0
- HDU5738 Eureka
- HDU5738 Eureka
- HDU5738 Eureka
- hdu5738 Eureka(数学)
- HDU5738 Eureka(计数)
- hdu5738-Eureka (重点 + 极角排序)
- 2016 Multi-University Training Contest 2-1005(hdu5738) Eureka
- 【HDU5738 2016 Multi-University Training Contest 2E】【平面点数计数 共线判定】Eureka 平面有多少个集合满足贡献
- Eureka!
- Eureka
- Eureka
- Eureka
- Eureka
- Eureka
- hdu5738(极角排序)
- hdu5738 多校2.5 几何+点集操作
- 2016暑假多校联赛 HDU5738
- hdu5738组合计数,极角排序
- Kettle实现SQL Server数据到GreenPlum的每日同步调度
- 关于win7的VmWare虚拟机下安装CentiOS6.9 minimal过程
- 48. Rotate Image
- UVA 455 Periodic Strings
- 【快速搞定】2分钟搞定极光推送(极光推送Android端集成)
- HDU5738 Eureka
- 【Thrift】python 例子
- Android布局之layout_weight的用法
- 图解自考——数据结构导论概论
- HMM:隐马尔科夫
- Go语言学习笔记
- 七月英语总结
- 渣翻——Function、Method、Procedure和Subroutine的区别
- 斯坦福算法Specialization的收获