- 浏览: 109468 次
- 性别:
- 来自: 广州
最新评论
-
xinhemei:
我试了试,发现gmail和163的不行。好像ajax请求失败了 ...
jQuery实现邮箱自动登录 -
酒鬼_yuan:
我正在找 谢谢了
关于yui的学习
package middle; import java.io.BufferedInputStream; import java.util.Arrays; import java.util.Scanner; /** * poj1723 * 借鉴了别人的代码和思路 * 一 士兵有多种移动方式 * 通过适当的移动顺序和移动路线可以使得同一时刻不会有两名士兵站在同一点 * 二 题目要求最佳移动方式(即求移动的最少步数) * 题目要求转化为求士兵站立的“最终位置”,即如何取“最终位置”使得士兵移动的步数最少(最优) * 因为移动步数可以分解为移动到同一直线,再移动到相邻位置,因此可以分开求 * Y轴方向上的考虑(移动直线的时候) * 设目标坐标为M,即n个士兵最终需要移动到的Y轴的坐标值为M * n个士兵的Y轴坐标分别为: * Y0,Y1,Y2 …… …… Yn-1 * 则最优步数S=|Y0-M|+|Y1-M|+|Y2-M|+ …… …… +|Yn-1-M| * 结论:M取中间点的值使得S为最少(最优) * X轴方向上的考虑 * 首先需要对所有士兵的X轴坐标值进行排序 * 然后,按从左至右的顺序依次移动到每个士兵所对应的“最终位置”(最优),所移动的步数总和就是X轴方向上需要移动的步数 * 例,最左的士兵移动到“最终位置”的最左那位,第二个士兵移动到“最终位置”的第二位(好好理解下) * 则总的步数为:士兵一移动步数+士兵二移动步数+ …… +士兵n移动步数 * 如何确定X轴方向上的最佳的“最终位置”? * 共n个士兵 * 他们相应的X轴坐标为:X0,X1,X2 …… …… Xn-1 * 设,士兵需要移动到的“最终位置”的X轴坐标值为:k,k+1,k+2 …… …… k+(n-1) * 则所求最优步数S=|X0-k|+|X1- (k+1) |+|X2-(k+2)|+ …… +|Xn-1-(k+(n-1))| * 经过变形S=|X0-k|+|(X1-1)-k|+|(X2-2)-k|+ …… …… +|(Xn-1-(n-1))-k| * 注意到公式的形式与Y轴方向上的考虑一样,同样是n个已知数分别减去一个待定数后取绝对值,然后求和 * 因此还是采用取中位数的办法求得k值,最后算出最优解 * @author NC */ public class Poj1723 { static int x[]; static int y[]; public static void main(String[] args) { Scanner scan = new Scanner(new BufferedInputStream(System.in)); if (scan.hasNext()) { int n = scan.nextInt(); x = new int[n]; y = new int[n]; for (int i = 0; i < n; i++) { x[i] = scan.nextInt(); y[i] = scan.nextInt(); } Arrays.sort(x); Arrays.sort(y); for (int i = 0; i < n; i++) { x[i] -= i; } Arrays.sort(x); int midX = x[(n + 1) / 2 - 1]; int midY = y[(n + 1) / 2 - 1]; int num = 0; for (int i = 0; i < n; i++) { num += Math.abs(x[i] - midX) + Math.abs(y[i] - midY); } System.out.println(num); } } }
#include<stdio.h> #include<iostream> #include<queue> using namespace std; long x[10000], y[10000]; int main() { long i, n, num; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d %d", &x[i], &y[i]); sort(x, x + n); sort(y, y + n); for (i = 0; i < n; i++) { x[i] = x[i] - i; } sort(x, x + n); //再排序 long midX = x[(n + 1) / 2 - 1]; long midY = y[(n + 1) / 2 - 1]; num = 0; for (i = 0; i < n; i++) { num += abs(x[i] - midX) + abs(y[i] - midY); } printf("%ld\n", num); return 0; }
发表评论
-
Poj3126
2010-05-29 22:07 1233import java.io.BufferedIn ... -
poj3125简单模拟
2010-05-25 11:44 1004import java.io.BufferedInputS ... -
还是水
2010-05-24 12:53 767import java.io.BufferedInputS ... -
Poj3085再水一下
2010-05-24 12:28 864import java.io.BufferedInputS ... -
Poj3673超水题
2010-05-24 12:12 867package easy; import java. ... -
Poj3278 广度优先搜索
2010-05-22 23:24 1330import java.io.BufferedInputS ... -
合唱队形
2010-05-09 21:45 2165#include <stdio.h> #incl ... -
动态规划经典问题 石子合并
2010-05-09 21:45 6102我们学校的oj的 #include & ... -
poj3199 高精
2010-05-09 21:44 967import java.io.BufferedInputS ... -
poj1002 郁闷的电话号码
2010-05-08 23:48 1280import java.io.BufferedInputS ... -
poj1298 无语。。。
2010-04-24 23:24 1018import java.io.BufferedInputStr ... -
poj1017 装箱问题 简单贪心
2010-04-18 16:56 2356import java.io.BufferedInpu ... -
poj1042 枚举+贪心算法
2010-04-18 00:45 1800import java.io.BufferedInputS ... -
zoj3197 Google Book 贪心算法
2010-04-15 23:54 1394#include <stdio.h> #defi ... -
Poj2453 an easy program
2010-04-09 00:19 870/* * To change this template, ... -
poj2299 递归与分治策略
2010-04-02 23:38 1437package hard; import java.io ... -
Poj2524 并查集
2010-03-18 15:22 864package middle; import jav ... -
Poj1308 并查集
2010-03-18 15:21 1708package middle; import jav ... -
poj1405 高精
2010-02-28 11:09 1375import java.io.BufferedInputS ... -
poj1979 深度遍历
2010-02-27 20:56 1296问题重述 问题描述: ...
相关推荐
POJ 1012 约瑟夫问题的数学解法及分析POJ 1012 约瑟夫问题的数学解法及分析POJ 1012 约瑟夫问题的数学解法及分析
"组合数学 ACM 和 POJ 里用到组合数学的题目" 组合数学是 ACM/ICPC 竞赛中一个非常重要的领域,它的应用非常广泛,涵盖了排列、组合、生成函数、Burnside 引理、Polya 定理等多个方面。在本文中,我们将对组合数学...
【北大POJ初级-数学】是北京大学在线编程平台(POJ)上针对初学者设置的一系列数学相关的编程题目。这个解题报告集包含了对这些题目的深入解析和已通过(AC,Accepted)的代码实现,旨在帮助学习者提升在算法和编程...
* 组合数学:组合数学是指解决问题的组合数学算法,如 poj3252、poj1850、poj1019、poj1942。 * 数论:数论是指解决问题的数论算法,如 poj2635、poj3292、poj1845、poj2115。 * 计算方法:计算方法是指解决问题的...
在"POJ2002-Squares"这个问题中,参赛者可能需要编写一个程序来处理与正方形相关的数学问题。这可能涉及到计算和处理大量正方形,例如找出一个范围内的所有完全平方数,或者计算不同大小正方形覆盖区域的重叠部分。...
* 模拟法:通过模拟问题的过程来解决问题,例如 poj1068、poj2632、poj1573、poj2993、poj2996。 2. 图算法: * 图的深度优先遍历和广度优先遍历:例如 poj1860、poj3259、poj1062、poj2253、poj1125、poj2240。 ...
标题中的"jihe.rar_2289_POJ 3714_poj3714_poj3714 Ra_visual c" 提到了一个压缩文件,可能包含有关编程竞赛或算法解决的资源,特别是与POJ(Problem On Judge)平台上的问题3714相关的。"Ra_visual c"可能指的是...
1. "POJ2389-Bull Math.cpp":这是一个C++源代码文件,其中包含了解决"POJ2389-Bull Math"问题的算法实现。通过阅读这份代码,我们可以学习到作者是如何处理输入数据、如何设计并实现算法、以及如何组织代码结构的。...
这道题目通常被用于训练程序员的数据结构和算法技能,特别是解决数学问题的能力。在编程竞赛或者算法训练中,这类题目能够帮助参赛者提升逻辑思维和问题解决技巧。 【描述】"解题报告+AC代码"表示这个压缩包包含了...
- **解释**:这一类问题通常涉及基本的数学运算和数学定理的应用。 #### 2. 几何问题 - **例题**:poj1328, poj2109, poj2586 - **解释**:这类题目涉及到几何图形的处理,比如点、线、面等的计算与判断。 #### 3....
2. **数学归纳法**:通过归纳推理解决问题(poj2947, poj1487, poj2065, poj1166, poj1222)。 3. **GCD算法**:最大公约数算法的扩展应用(poj3101)。 以上知识点覆盖了ACM-POJ算法训练指南的主要内容,对于初学...
1. POJ——1004 Financial Management:这可能涉及到基础的数学计算和数据处理,如利润计算、利息计算等,可能需要用到循环结构和简单的数学公式。 2. POJ——1664 放苹果:此题可能需要理解数组操作和动态规划,...
POJ(Peking University Online Judge)是一款在线评测系统,旨在帮助程序员提高编程能力和解决问题的能力。该系统提供了大量的编程题目,涵盖了算法、数据结构、数学、动态规划、博弈论等多个领域。通过解决这些...
这道题目的全称可能是"Eqs",可能涉及数学或算法问题,通常在这样的在线判题系统中,题目会要求参赛者编写程序解决特定的计算或逻辑问题。 【描述】"解题报告+AC代码"表示这个压缩包包含了解题思路的报告以及已经...
在解决此类问题时,通常会使用C++等编程语言,因此`POJ1004-Financial Management.cpp`文件很可能包含了用C++编写的源代码。代码可能包含了读取输入、处理数据、计算结果和输出答案等核心功能。同时,`POJ1004-...
- 分治法:将一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,如`poj3295`。 - 递推:利用已知的基础条件和递推关系式来求解问题,通常用于解决序列问题。 - 模拟法:按照...
例如,poj1328和poj2109就是典型的贪心问题。贪心算法的关键在于正确性证明,确保每一步的局部最优能够导向全局最优。 #### 分治法与递归 分治法是将大问题分解成若干个子问题,递归地求解这些子问题,然后将子问题...
在这个例子中,标签提示我们这可能是一个涉及动态规划、图论、数学或物理问题的算法题目。 【文件列表】: 1. "POJ3041-Asteroids.cpp":这是一个C++源代码文件,其中包含了参赛者编写的程序,用于解决"Asteroids...
描述中提到的"递归经典题目"意味着这个题目可能涉及到递归算法,递归是一种函数或过程调用自身的技术,常用于解决分治策略的问题,如树遍历、排序(如快速排序、归并排序)和求解数学问题(如斐波那契数列)等。...
标题中的"POJ1017-Packets"指的是北京大学在线编程平台POJ(Problem Set of Peking University)上的第1017题,这是一道关于数据包处理的问题。题目通常要求参赛者编写程序来解决特定的算法或逻辑挑战。 在描述中...