hdu 4631 Sad Love Story(暴力)
2015-10-26 22:13
363 查看
题目连接:hdu 4631 Sad Love Story
代码
#include <cstdio> #include <cstring> #include <set> #include <vector> #include <algorithm> using namespace std; typedef long long ll; typedef pair<ll, ll> pii; typedef set<pii>::iterator iter; ll ans; set<pii> G; ll get(ll x, ll y) { return x * x + y * y; } void solve (ll x, ll y) { iter it = G.lower_bound(make_pair(x, y)); for (iter i = it; i != G.end(); i++) { ll tmp = i->first - x; if (tmp * tmp >= ans) break; ans = min(ans, get(i->first - x, i->second - y)); } for (iter i = it; i != G.begin();) { i--; ll tmp = x - i->first; if (tmp * tmp >= ans) break; ans = min(ans, get(i->first - x, i->second - y)); } } int main () { int cas, n; scanf("%d", &cas); while (cas--) { G.clear(); scanf("%d", &n); ll Ax, Bx, Cx; ll Ay, By, Cy; scanf("%lld%lld%lld", &Ax, &Bx, &Cx); scanf("%lld%lld%lld", &Ay, &By, &Cy); ans = 1e18; ll x = Bx % Cx, y = By % Cy, ret = 0; for (int i = 1; i < n; i++) { G.insert(make_pair(x, y)); x = (x * Ax + Bx) % Cx; y = (y * Ay + By) % Cy; solve(x, y); ret += ans; } printf("%lld\n", ret); } return 0; }
相关文章推荐
- 如何在C++中实现求两个整数的最大公约数和最小公倍数
- Oracle数据库服务器更改计算机名称,导致监听服务打不开解决办法
- JSP的学习(3)——语法知识二之page指令
- Java 数据库 第五章 查询数据(DQL)
- 美团Java实习面试经历(拿到Offer)
- hive中order by,sort by, distribute by, cluster by作用以及用法
- 用栈来实现表达式的计算
- 【面经】Morgan Stanley IT简易面经
- C++:虚函数的引入
- Spring之SpringMVC(源码)启动初始化过程分析
- APK防反编译
- XE7 C++Builder for Android配置并编写第一个demo
- Java 数据库 第三章 数据库完整性
- hdoj 3068最长回文【Manacher】
- tomcat server.xml配置crossContext 实现多应用中session共享
- TabControl
- 安装 ubuntu-14.04-desktop-amd64.iso + FSL
- Java 数据库 第二章 管理数据库和表
- 绘制自定义的图形
- html必不可少的3个头部元,代码如下