Wiki_ki

导航

2012年8月16日 #

Java学习笔记(一)

摘要: 一个暑假又水过去了,哎,什么都没学到,新的学期开始了,必须开始认真点学习了,从今天开始第一个任务是从C/C++转Java,跟以前pascal转C不同,这次谈不上转吧,算是简单的Java学习过程。 首先下载eclipse,JRE,JDK,我非常蠢的下了eclipse就已经可以了,然后发现系统提示说缺少JRE,于是下了JRE,下完JRE发现代码没办法运行,上网搜了一下发现需要下JDK,T_T,早就应该下全了再玩。 然后在poj上找了一道水题做了一下,整体来说Java的语法跟C/C++区别不大,只不过Java给我感觉处处是类,public class XXX,XXX必须与文件名相同,我在本地... 阅读全文

posted @ 2012-08-16 22:59 Wiki_ki 阅读(254) 评论(0) 推荐(0) 编辑

POJ 1477 Box of Bricks,题目什么的是水题,第一个Java程序,纪念一下^-^

摘要: 题目的意思就是现在有N堆砖头,每堆砖头的数量不一样多,现在问你要移动多少次砖头(一次限一个)使得每堆砖头数相同。 做法就是算出平均数,然后直接算出超平均数的差值和即可。 代码如下:(第一次用java,写的不好,纪念一下)import java.util.*;public class averge { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner cin=new Scan... 阅读全文

posted @ 2012-08-16 13:35 Wiki_ki 阅读(212) 评论(0) 推荐(0) 编辑

2012年8月3日 #

POJ 2172 & 1380 做一送一什么的最有爱了~~~

摘要: 这两题问题抽象后都是判断将一个长宽A,B的矩形能否放入长宽C,D的矩形中。这是个纯粹的数学题目,示意图如下: 突然发现图弄大了,算了不管了,以上的所有量都可以依次计算得到,当然事先判断A<D时输出NO,然后只要B*cosa+A*sina<=E,那么就输出YES,否则输出NO即可。 代码如下:#include <iostream>#include <cmath>using namespace std;double A , B , C , D , E;double a , b , c;inline void swap(double &x , double 阅读全文

posted @ 2012-08-03 20:09 Wiki_ki 阅读(158) 评论(0) 推荐(0) 编辑

2012年7月31日 #

POJ 3232 Accelerator

摘要: 题目的意思大概是说现在你是跑跑卡丁车的队长,包括你在内有N个人,然后你每个时刻有M个加速器,加速器可以使你走k路程,1路程为你在没有加速器的情况下1时间所走,现在对于每名队员你知道他们距离终点的距离ai,那么现在队长的目的是让大家尽早到达终点,求最晚到终点的人的最早时间(好拗口的说法) 这道题目的数据范围是:N (1<= N <= 100000),Ai (1<= Ai <= 10^8) ,M and the K (1<= K*M <=10^8) ,测试时是多组数据测,T<=20 这道题目貌似discuss版里有很好的方法,我能想到的就是二分答案+che 阅读全文

posted @ 2012-07-31 21:07 Wiki_ki 阅读(200) 评论(0) 推荐(0) 编辑

POJ 3628 Bookshelf 2

摘要: 题目的意思很清楚,就是说FJ(奶牛场主为我们提供了多少题目啊),有个书架(渣翻译),然后书架有个高度H,现在FJ有N个奶牛,每个奶牛有个高度hi,现在将奶牛堆起来(话说这怎么堆),使得堆起来的高度大于等于(注意等于,我第一次没有加等号,导致了一次wa)H,现在要求最小高度差。 本来是想用dp来做的,类似背包问题,后来看了下数据范围N<=20,而高度确很高,所以显然对于本题而言,直接dfs是不错的选择。 稍微加了一点小优化: 1.首先搜索顺序是从大到小搜,这样容易提前跳出。2.当当前高度+最小高度-H>=min(已知最小高度差)时就直接跳出 3.当min是0时直接跳出 代码如下:#. 阅读全文

posted @ 2012-07-31 19:49 Wiki_ki 阅读(141) 评论(0) 推荐(0) 编辑

Codeforces Round #131 (Div. 2)------AB

摘要: 非常郁闷,一大早起来看结果,本来以为这次rating应该能升到1600以上的,可惜结果很惨,B题由于一个小失误,导致被别人hack成功了。由于家庭原因,老妈不准熬夜做,做了39min把AB两道简单题做完就没做了,本来想AB应该全AC的,名次也不会差,但是被hack了。废话不多说了,简单的回顾一下AB两道题目。 题目链接http://codeforces.com/contest/214 A:直接枚举的,暂时也没什么好的数学方法,不过数据比较小,枚举依然很快。#include <iostream>using namespace std;int n , m;int a , b , ans 阅读全文

posted @ 2012-07-31 11:42 Wiki_ki 阅读(154) 评论(0) 推荐(0) 编辑

2012年7月27日 #

POJ 3233 Matrix Power Series

摘要: 题目的意思是已知一个n阶矩阵A,以及K,M,求S = A + A^2 + A^3 + ... + A^K,由于里面的数值当K很大时偏大,对M取模。其中数据的范围为: n(n≤ 30),k(k≤ 109) andm(m< 104). 构造分块矩阵 B = A I 0 I 由数学归纳法可证得 B^(K+1)= A^K I+A^1+A^2+...+A^K 0 I 这样这道题目就纯粹转化为了求B矩阵的K+1次方了,二分即可。 代码如下:#include <iostream>#define MAXN 61using namespace... 阅读全文

posted @ 2012-07-27 15:21 Wiki_ki 阅读(148) 评论(0) 推荐(0) 编辑

2012年7月19日 #

POJ2823 Sliding Window

摘要: 首先吐槽题目,害的我交了三次错程序上去,题目里面说的清清楚楚,数是integer,integer,呵呵,我一开始最大最小值定义为32768,-32768,最后交了前三次的结果都是Wrong Answer,后来我觉得实在没有什么地方可以改了,就把最大最小值改成long下的值,直接AC,程序效率相当之低,几乎是踩着线过数据的。 题目意思很清楚,背景故事什么的没细看,总之意思就是给你N个数,以及一个K,现在让你求[0,K-1],[1,K],...,[N-k,N-1]这些区间中的最大最小值。 对于区间问题,我首选的还是线段树,正好上次acm校赛线段树的失利历历在目,所以再写一次线段树很有必要。... 阅读全文

posted @ 2012-07-19 17:53 Wiki_ki 阅读(113) 评论(0) 推荐(0) 编辑

POJ 2299 Ultra-QuickSort

摘要: 题目的意思很明确,就是求逆序对,于是直接在归并排序里加上ans+=mid-i+1求解即可 代码如下:#include <iostream>#define MAXN 500003using namespace std;int N;long long ans;int a[MAXN] , t[MAXN];void merge(int l , int r) { int mid = (l+r) >> 1 , i = l , j = mid+1 , s = l; while (s <= r) { if (j > r || (i <= mid && 阅读全文

posted @ 2012-07-19 13:20 Wiki_ki 阅读(132) 评论(0) 推荐(0) 编辑

POJ 1611 The Suspects

摘要: 题目的意思大致是说,同学之间有时会有一些小团体,现在已知0号同学已经感染了sars,那么跟他平时接触多的同学(团体内的所有人),都将被列为感染者,现在给出学生总数N以及团体总数M以及团体内部成员的具体编号,问总共有多少同学为感染者。 经典的并查集问题,运用并查集判断各个元素所处的集合,将于0号元素所处集合相同的元素累计即可得解,数据范围N<=30000,M<=500,故感觉数据规模不是很大,所以并查集部分并没有加上秩,没有加按秩合并的优化,仅仅加上了路径压缩。 代码如下: #include <iostream>using namespace std;#define MA 阅读全文

posted @ 2012-07-19 10:05 Wiki_ki 阅读(127) 评论(0) 推荐(0) 编辑