题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4311 解题报告:在一个平面上有 n 个点,求一个点到其它的 n 个点的距离之和最小是多少. 首先不得不说一下做这道题囧的事,杭电用的是__int64,我前面定义的时候用的是__int64,然后后面输出结果的时候格式控制符竟然用了%lld,还小卡了一会,唉,大意了啊. 然后感觉这题好巧妙,做法是将 x 与 y的距离分开求,我也是看了学长博客之后才懂的http://www.cnblogs.com/Lyu…
Meeting point-1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2866    Accepted Submission(s): 919 Problem Description It has been ten years since TJU-ACM established. And in this year all the…
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3448    Accepted Submission(s): 1144 Problem Description It has been ten years since TJU-ACM established. And in this year all the retired TJU-ACM…
http://acm.hdu.edu.cn/showproblem.php?pid=4311 题意:在二维坐标中有n个点,现在要从这n个点中选出一个点,使得其他点到该点的曼哈顿距离总和最小. 思路: 离散化分别处理x坐标和y坐标. 将点按照x坐标进行排序,sum数组记录记录前缀和,那么当选第i个点时其余点在x轴到该点的距离为 $(i-1)*p[i].x-sumx[i-1] + (sumx[n]-sumx[i]) - (n-i)*p[i].x$. y坐标同理. #include<iostream>…
hdu 4311 题意 平面上\(n(n\leq 1e5)\)个点,找一个点到其它所有点的曼哈顿距离之和最小. 思路 如果是找一个坐标使得所有点到其曼哈顿距离之和最小,那么将\(n\)个横坐标排个序,取中间的一个为答案的横坐标,将\(n\)个纵坐标排个序,取中间的一个为答案的纵坐标.原因就是绝对值\[y=|x-a_1|+|x-a_2|+...+|x-a_n|\]的图像为平底锅型或者是尖底.因为可以在平面上任意取点,所以可以取最优的\(x\)和\(y\). 但是这道题并不能够任意取点,而是限定在了…
这俩个题  题意::给出N(<1e5)个点求找到一个点作为聚会的地方,使每个点到达这里的距离最小.4311是 曼哈顿距离 4312是 切比雪夫距离: 曼哈顿距离 :大家都知道 对于二维坐标系a(xa,yb),b(xb,yb)的曼哈顿距离是abs(xa-xb)+abs(ya-yb): 看的出来这个距离和x,y 都有关,但是X,Y并不相互影响,所以可以分开计算这样,分开计算的好处如下: 如果 只给一个维度的坐标系 ,我们是不可以再什么养的复杂度的时间内处理出来呢? 大难还是很好想的先排序一下,会发现…
描述 After scrimping and saving for years, Farmer John has decided to build a new barn. He wants the barn to be highly accessible, and he knows the coordinates of the grazing spots of all N (2 ≤ N ≤ 10,000 cows. Each grazing spot is at a point with int…
单源最短路问题是固定一个起点,求它到任意一点最短路的问题. 记从起点出发到顶点 i 的最短距离为d[i],则有以下等式成立 d[i]=min{d[j]+(从j到 i 的边的权值) 看代码 #include<iostream> #include<cstdio> #include<cstring> #include<stdio.h> #include<string.h> #include<cmath> #include<math.h…
题意:统计单串中从某个位置以前有多少重复的串 思路:kmp模板 #include<iostream> #include<stdio.h> #include<string.h> using namespace std; #define MaxSize 1000005 char str[MaxSize]; int next2[MaxSize]; void GetNext(char t[]){ int j,k,len; j=; k=-; next2[]=-; len=strl…
题目链接 正经解法: 给定n个点的坐标,找一个点,到其他点的曼哈顿距离之和最小.n可以是100000.大概要一个O(nlogn)的算法.算曼哈顿距离可以把x和y分开计算排好序后计算前缀和就可以在O(1)时间内判断一个点到其他点的距离. #include<cstdio> #include<algorithm> using namespace std; #define ll long long #define N 100005 int t,n; ll ans,sum[N],sx[N],…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4311 Meeting point-1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3426    Accepted Submission(s): 1131 Problem Description It has been ten years s…
Hyperspace Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 314    Accepted Submission(s): 155 Problem Description The great Mr.Smith has invented a hyperspace particle generator. The device is…
了校赛,还有什么途径可以申请加入ACM校队?  覆盖的面积 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4823    Accepted Submission(s): 2398 Problem Description 给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积.   Input 输入数据的第一行是一个正整数T(1…
题目:任意给定一个正整数N,求一个最小的正整数M(M>1),使得N*M的十进制表示形式里只含有1和0. 解法一:暴力求解.从1开始查找M,然后判断M*N=X这个数字是否只含有0,1. 解法二:由于没有直接的数学方法能帮我们直接得到M的值,所以我们只能进行搜索.由于相对M,乘积N*M具有明显的特征,需要搜索的空间要小很多,所以我们对乘积N*M进行搜索.如果N*M的结果有K位,则要循环2^K次,我们发现K的结果能轻易超过40,所以这个运行时间还是相当长.同余运算具有等价关系,mod N = i(0<…
迪杰斯特拉算法百度百科定义:传送门 gh大佬博客:传送门 迪杰斯特拉算法用来计算一个点到其他所有点的最短路径,是一种时间复杂度相对比较优秀的算法 O(n2)(相对于Floyd算法来说) 是一种单源最短路径算法,但是它并不能处理负边权的情况 Dijkstra的算法思想:①将一开始所有的非源点到源的距离设置成无限大(你认为的无限大实际上是0x3f(int)或者0x7fffffff(long long)),然后源到源距离设置成0(不就是0吗),然后每次找到一个距离源最短的点u,将其变成白点,枚举所有的…
求一个正整数转换为二进制数时中‘1’的个数 分析:这道题目就是很简单的位运算,我们可以把这个整数和1进行&操作(就是二进制数中的最低位与1进行&),然后将这个整数进行右移处理,将下个位置的数字移到最低位:反复如此操作直到该数变为0. int NumOf_one(int k) { ; while(k) { ) count_1++; k >>= ; } return count_1; }…
求一个Map中最大的value值,同时列出键,值 方法1. public static void main(String[] args){  Map map=new HashMap();  map.put("d", 761);  map.put("g", 7);  map.put("a", 761);  map.put("c", 34);    int value=0;     String maxKey = null;   …
概要 今天偶然看到有个关于数学中集合的问题,就突发奇想的想用python实现下求一个集合的子集. 准备 我当然先要复习下,什么是集合,什么是子集? 比较粗犷的讲法,集合就是一堆确定的东西,细致一点的讲法呢,就是由一个或多个确定的元素所构成的整体,集合中的东西称为元素. 集合有一些特性: 1.确定性 给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现. 2.互异性 一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次.有时需要对同一元素…
给定一个集合,元素均为正整数且不重复,求该集合的所有子集 # -*- coding: utf-8 -*- """ Created on Tue Oct 10 09:04:53 2017 @author: nvidia """ #!/usr/bin/python #coding=utf-8 #求一个集合的所有真子集 def getRealSubSet(fromList,toList): if(len(fromList) <= 1): retu…
求一个字符串所有的相同前后缀Sample Input ababcababababcababaaaaaSample Output 2 4 9 181 2 3 4 5 #include <iostream> #include <cstring> #include <cstdio> #include <stack> using namespace std; ; int next[N]; char T[N]; int tlen; stack<int> s…
问题:求一个正实数X的平方根,不能使用sqrt等库函数. 解析:本题要求求一个正实数的平方根,不能使用sqrt等已有的库函数,我们可以做一下考虑: 利用二分法,mid=X/2.0,若mid*mid>X+p(由于浮点数不能精确表示和计算,设定p为一阈值),则说明X的开方小于mid,令mid=mid-q(q为设定的一个正的"小"实数):若mid*mid<X-p,则说明X的开方大于mid,令mid=mid+q:若X-p<mid*mid<X+p,则可返回mid为X的平方…
用递归的方法求一个数组的前n项和 public class Demo1 { /* * 用递归的方法求一个数组的前n项和 */ public static void main(String[] args) { //定义和初始化数组 int[] a = new int[100]; for(int i=0; i<100;i++) { a[i] = i+1; System.out.print(a[i] + " "); } System.out.println(); //调试输出结果,注意…
xml的序列化与反序列化求一个好用的东西,类似,newtonsoft.net转json的东西.xml里面的结构和数据库不一致..................…
求几个数的最小公倍数就是先求出前两个数的最小公倍数,然后再把这个最小公倍数跟第三个数放在一起来求最小公倍数,如此类推... var dbList = []; //两个数的最小公倍数 function gcd(a,b){ var minNum = Math.min(a,b),maxNum = Math.max(a,b),i=minNum,vper=0; if(a ===0 || b===0){ return maxNum; } for(;i<=maxNum;i++){ vper = minNum…
题: 给定一个序列S以及它的一个子序列T,求S的所有包含T的子序列.例: S = [1, 2, 3, 2, 4] T = [1, 2, 4] 则S的所有包含T的子序列为: [1, 2, 3, 2, 4] [1, 2, 3, 4] [1, 2, 2, 4] [1, 2, 4]   解: 首先可以拆解为两个问题: 1. 求S的所有子序列:其中又涉及到去重的问题. 2. 求S的所有子序列中包含T的子序列.   暂时先不考虑去重,看看问题1怎么解: 一.求S的子序列 单纯求一个序列的所有子序列的话,就是…
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. public class _038PrintLength { public static void main(String[] args) { printLength(); } private static void printLength() { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个字符串 :"); Str…
求一个n元一次方程的解,Gauss消元 const Matrix=require('./Matrix.js') /*Gauss 消元 传入一个矩阵,传出结果 */ function Gauss(matrix){ let l=[];//是否为自由元 let ans=[];//存储解 const n=matrix.Column-1;//解的个数 const EPS=0.00001; let res=0,r=0; for(let i=0;i<matrix.Column;i++){ for(let j=…
/* * 用java求一个整数各位数字之和 */ public class Test02 { public static void main(String[] args) { System.out.println(Test02.sumDig(23865)); System.out.println(Test02.sumDig2(23965)); } public static int sumDig(int n) { int sum = 0; if (n >= 10) { sum += n % 10…
import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:求一个整数个位数之和 * */ public class Exercise06_02 { public static void main(String[] args){ Scanner input = new Scanner(System.in); System.out.println("输入一个整数: "); long n=input.nextLong();…
import java.util.Scanner; /** * [程序38] * * 题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. * * @author James * */ public class 第三十八题统计字符串的长度 { public static void main(String[] args) { System.out.println("请输入一个字符串"); Scanner in = new Scanner(System.in);…