HDU4631(标程代码)
/*将x从小到大排序,每次插入一个点,直接找比这个点的x大的第一个,然后从这个开始向两边找
,找点的下标用多重容器实现*/
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<set>
#include<algorithm>
#include<iostream>
using namespace std;
struct point
{
__int64 x,y;
bool operator<(const point &a) const
{
return x<a.x;
}
};
void cacl(__int64 n,__int64 x[])
{
__int64 a,b,c;
scanf("%I64d%I64d%I64d",&a,&b,&c);
int i;
x[]=;
for(i=;i<=n;i++)
x[i]=(x[i-]*a+b)%c;
}
__int64 min(__int64 a,__int64 b)
{
if(a<b) return a;
return b;
}
__int64 x[],y[],n;
void find()
{
__int64 i,j;
__int64 ans,sum;
__int64 m1,m2;
scanf("%I64d",&n);
cacl(n,x);
cacl(n,y);
//for(i=1;i<=n;i++)
// printf("%I64d %I64d\n",x[i],y[i]);
ans=(__int64)<<;
sum=;
multiset<point> M;
for(i=;i<=n;i++)
{
point p;
p.x=x[i]; p.y=y[i]; if(i>)//从第二个点开始
{
multiset<point>::iterator it=M.lower_bound(p),e;
for(e=it;e!=M.end();e++)
{
m1=e->x-p.x;////差值
if(m1*m1>=ans) break;
m2=e->y-p.y;
ans=min(ans,m1*m1+m2*m2);
}
for(e=it;e!=M.begin();)
{
e--;//防止重复,上面已经找过it了
m1=e->x-p.x;
if(m1*m1>=ans) break;
m2=e->y-p.y;
ans=ans=min(ans,m1*m1+m2*m2);
}
sum=sum+ans;
}
M.insert(p);
}
printf("%I64d\n",sum);
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
find();
}
return ;
}
HDU4631(标程代码)的更多相关文章
- MIUI6&7桌面角标开源代码简介
MIUI6&7桌面角标开源代码简介 MIUI6&7上重新设计了桌面app图标的角标显示,基本规则如下: 一.基本介绍 1.默认的情况 当app 向通知栏发送了一条通知 (通知不带进度条 ...
- [求助][SPOJ MARIOGAM]-高斯消元(内含标程,数据等)
小蒟蒻开始做概率的题之后,遇到了这道题,然而,他发现自己的程序调试了无数次也无法通过,系统总是返回令人伤心的WA, 于是,他决定把这一天半的时间收集到的资料放在网上, 寻求大家的帮助, 也可以节省后来 ...
- hdu6435 Problem J. CSGO标程讲解以及改正标程的一个错误(本来第一个样例过不了2333) 以及 poj2926 五维曼哈顿距离模板
比赛的时候抄poj2926的模板,但改不来啊orz #include <iostream> #include <cstdio> #include <cstring> ...
- [转]关于一些SPFA的标程
SPFA算法 求单源最短路的SPFA算法的全称是:Shortest Path Faster Algorithm. 最短路径快速算法-SPFA算法是西南交通大学段凡丁于1994年发表的. 适用范围:给定 ...
- Python全栈开发:协程代码实例
协程代码1 #!/usr/bin/env python # -*- coding;utf-8 -*- # 导入协程模块 """ 协程工作原理 ""&q ...
- python-socket和进程线程协程(代码展示)
socket # 一.socket # TCP服务端 import socket # 导入socket tcp_sk = socket.socket() # 实例化一个服务器对象 tcp_sk.bin ...
- 7.24 IO多路复用和协程代码笔记
1. 复习 # !/usr/bin/env python # !--*--coding:utf-8 --*-- # !@Time :2018/7/23 11:49 # !@Author TrueNew ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
- 【CQ18高一暑假前挑战赛2】标程
[昨晚打校赛,5个小时打完很累了,所以搞忘出题了...对不起学弟们,不过出的题都亲自写过一遍,可以保证题目和代码长度都不长,题目难度不大] [A:bush博弈] #include<bits/st ...
随机推荐
- SSH框架-Struts2基础-Action
Struts2的目录结构: 解压apps目录下的struts2-blank.war: 仿照这个最基本的项目,拷贝相关文件: 1.拷贝apps/struts2-blank/WEB-INF/classes ...
- java web 登录框
我们会骂 12306 的网站界面挫,效果差,速度慢,回头看看自己写的代码,是不是也一样的狗血!在前端,很多看似简单的东西,内藏无数玄机.本文将以一个小小的登录框为入口,谈一谈如何完善自己的程序. 在很 ...
- PowerDesigner最基础的使用方法入门学习2
from:http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html 最近要忙期考,但还是决定每天抽点空来写CodeSmith的系 ...
- AndroidManifest.xml文件详解(activity)(三)四种工作模式
android:launchMode 这个属性定义了应该如何启动Activity的一个指令.有四种工作模式会跟Intent对象中的Activity标记(FLAG_ACTIVITY_*常量)结合在一起用 ...
- HDU 5894 hannnnah_j’s Biological Test
题目链接:传送门 题目大意:有n张板凳围成一圈,有m个人,要让m个人都坐到凳子上且任意两人之间相隔>=k 个凳子,问有多少种方法%(1e9+7) 题目思路:组合数学 我们这样考虑,既然每个人相距 ...
- 将json转为 SortedDictionary
#region ConvertJsonToSortedDictionary 将json转为 SortedDictionary /// <summary> // ...
- Mac中pico编辑器的使用方法
Pico是一个由华盛顿大学(University of Washington)计算与通讯研究所(Computing and Communications Group)编写并维护的文本编辑程序,在多个版 ...
- Java获取当前服务器IP
package hope.ipaddress.demo; import java.net.InetAddress; import java.net.NetworkInterface; import j ...
- Less-minxin传参
//mixin传参 --简单传参,example: .border-radius(@radius) { -webkit-border-radius: @radius; -moz-border-radi ...
- mybatis循环map
一.循环key <foreach collection="map.keys" item="key" separator="and"&g ...