hdu 5448 Marisa’s Cake(几何+凸包)
来源:互联网 发布:彩虹秒赞源码2017破解 编辑:程序博客网 时间:2024/06/09 07:11
题目链接:hdu 5448 Marisa’s Cake
解题思路
这题和zoj 3871 Convex Hull有点像,不过点数比较大,不能接受
首先,对于一个三角形ABC
那么对于i和j两点,只需要计算
在过程中维护
代码
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const int maxn = 100005;const int mod = 1e9 + 7;struct Point { int x, y; Point(int x = 0, int y = 0): x(x), y(y) {} void read () { scanf("%d%d", &x, &y); } int operator * (const Point& u) { return (1LL * x * u.y % mod - 1LL * y * u.x % mod + mod) % mod; } Point operator * (const int u) { return Point(1LL * u * x % mod, 1LL * u * y % mod); } Point operator + (const Point& u) { return Point((x+u.x)%mod, (y+u.y)%mod); }};int N, mul[maxn], inv[maxn];int mul_mod(ll x, int n, int mod) { int ret = 1; while (n) { if (n&1) ret = x * ret % mod; x = x * x % mod; n >>= 1; } return ret;}int main () { mul[0] = inv[0] = 1; for (int i = 1; i < maxn; i++) mul[i] = 2 * mul[i-1] % mod; ll inv2 = mul_mod(2, mod-2, mod); for (int i = 1; i < maxn; i++) inv[i] = inv2 * inv[i-1] % mod; int cas; scanf("%d", &cas); while (cas--) { int ans = 0; scanf("%d", &N); Point fi, fg, fh; for (int i = 1; i <= N; i++) { fi.read(); ans = (ans + 1LL * mul[i-1] * (fi * fh) % mod) % mod; ans = (ans + 1LL * (i==N?inv2:mul[N-i-1]) * (fg * fi) % mod) % mod; fg = fg + fi * mul[i]; fh = fh + fi * inv[i]; } printf("%d\n", ans); } return 0;}
0 0
- hdu 5448 Marisa’s Cake(几何+凸包)
- HDU 5448 Marisa's Cake(计算几何)
- hdu 5448 Marisa’s Cake(计算几何加推公式)
- HDU 5448 Marisa’s Cake
- 【HDU 5448】Marisa’s Cake
- HDOJ 5448 Marisa’s Cake
- HDU 5448 Marisa’s Cake(n个点中任意点组成的多边形面积之和)
- HDU 5640:King's Cake【几何】
- hdu 5640 King's Cake(模拟)
- 2015 ACM/ICPC Asia Regional Changchun Online 1012 hdu5448 Marisa’s Cake
- hdu5448-Marisa’s Cake 构成的所有多边形面积的和
- HDU 4454 Stealing a Cake (计算几何+三分)
- HDU 4454 Stealing a Cake(暴力计算几何)
- HDU 5640 King's Cake
- HDU 5640 King's Cake
- HDU 5640 King's Cake
- HDU 5640 King's Cake
- HDU 5640 King's Cake
- 一个死锁的例子
- poj 1170 Shopping Offers 完全背包
- Linux系统:an error occurred during the file system check 错误解决方法
- 个人博客开启(导语篇)
- 试卷分析
- hdu 5448 Marisa’s Cake(几何+凸包)
- DES加密解密算法
- Oracle: Network Waits
- ios9 设置开机画面隐藏状态栏
- CentOS7下Firewall防火墙配置用法详解
- 基于AStar算法的RCP布线优化
- IMAP Tools
- [转载]MAC 下将libpomelo连接到cocos2d-x
- ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看、收藏