- 博客(24)
- 收藏
- 关注
原创 可变参数之auto-boxing
章节:Initialization & Cleanup > Array initialization > Variable argument lists以下程序会报错:public class OverloadingVarargs2 { static void f(float i, Character... args) { System.out.println("f
2017-03-12 00:33:58 428
原创 吐槽一下Thinking In Java中文版翻译
原书Operators章节的Shift operators最后有一句:The binary representation of the numbers is referred to assigned twos complement.再看下中文版的翻译:数字的二进制形式表现为“有符号 2 的补值”。TMD这是什么人给翻译的?twos complement意思明明就是补码的意思
2017-03-01 00:31:16 3010 2
原创 java学习笔记:final关键字 与 array
声明一个final数组,仅仅表示这个数组的引用是不可改变的,而数组中每个元素的引用和object却可以改变例如:class A { public int i;}public class Test { public static void main(String[] args) { final A[] a = new A[3];
2016-06-22 14:15:52 768
原创 hdu #4405:Aeroplane chess
题目描述:http://acm.hdu.edu.cn/showproblem.php?pid=4405简单的概率dp#include #include #define MAX_N 100007int y[MAX_N];double dp[MAX_N];int main(){ int n, m, i, a, b; while(scanf("%d%d", &n,
2016-06-20 23:56:22 441
原创 poj #2096:Collecting Bugs
题目描述:http://poj.org/problem?id=2096概率dp简单题,题目分析参考了这篇:http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710621.html注意:dp[i][j]表示已经找到i种bug,且属于j个子程序,还需要的天数的数学期望。由分析可知:dp[i][j] = (i/n)(j/s)(dp[i
2016-06-08 16:51:20 551
原创 poj #3744 Scout YYF I
题目描述:http://poj.org/problem?id=3744很容易看出递推公式:dp[i] = p*dp[i-1] + (1-p)*dp[i-2],鉴于有雷的地方要特殊处理看了这篇blog,才知道要用矩阵和快速幂 http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710586.html后来又看到讨论里有人说有公式,
2016-06-02 23:47:12 386
原创 hihocoder #1075 : 开锁魔法III
题目描述:http://hihocoder.com/problemset/problem/1075没想法,后来看了题解,对概率进行dp,结果wa了看了这篇文章:http://www.cnblogs.com/gaoxiang36999/p/4451493.html是对能够打开全部箱子的方法数进行dp,最后除以总的数量#include #include #define MAX_
2016-05-31 21:29:39 602
原创 hihocoder #1076:与链
题目描述:http://hihocoder.com/problemset/problem/1076看了题没有一点思路,然后就搜到了这篇blog:http://blog.csdn.net/my_acm_dream/article/details/44749819也是看了好久,好在最后搞明白了关键的一点就是:假如这k个数的二进制每个数最多有i位,那么如果每个数有i+1位的话,这
2016-04-28 11:26:09 1058
原创 zoj #3870:Team Formation
题目描述:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3870大概意思就是给你n个数,从中找两个,比如i和j,使得i^j>max(i,j),问有多少种方法看了题没有一点思路,然后就看了题解两个数a,b要满足这种条件,假设它们二进制的最高位分别是第i位和第j位,那么i != j,并且:比如i>j,那么b的第
2016-04-28 11:23:42 602
原创 poj #3971:scales
题目描述:http://poj.org/problem?id=3971第一次用数位dp,参见http://www.cnblogs.com/lvpengms/p/3926678.html#include #include #define MAX_N 1000000int N, L, D, dp[MAX_N][2];char w[MAX_N];int main(){ int
2016-04-26 14:26:36 472
原创 hihocoder #1104 : Suzhou Adventure
题目描述:http://hihocoder.com/problemset/problem/1104这道题用树形dp来解答,第一种方法容易想到,用dp[i][j]来表示以i为根节点的子树中恰好访问j个节点所获得的最大score,并且这j个节点中必须包含子树中所有必须访问到的节点。注意:如果一个节点是推荐节点,那么它的父节点也必须被访问。第一层循环,计算出子树i中必须被访问的节点,并且用t
2016-04-23 23:38:10 790
原创 hihocoder #1063:缩地
题目描述:http://hihocoder.com/problemset/problem/1063这道题用到树形dp来解,具体有两种方式来实现先看第一种:参考文章:http://blog.csdn.net/wsjingping/article/details/45875867dp[i][j]表示以i为根的子树中,恰好得到j价值所走的最短距离,但是最后可以不回到起点,故有两种状态
2016-04-22 14:27:17 731
原创 hihocoder #1035 : 自驾旅行 III
题目描述:hihocoder.com/problemset/problem/1035看了题目后没有任何思路,于是看了这篇文章:http://blog.csdn.net/acmmaxx/article/details/38023667解题思路:dp[i][0]:只有人可以走,且最后必须回来dp[i][1]:只有人可以走,最后可以不会来dp[i][2]:人车都可以走,且人和车都
2016-04-17 21:28:37 1353
原创 hiho一下 第二十周 线段树的区间修改
题目有了一些变化:查询区间的总和;将区间内的值都修改为指定值。因此可以对之前的代码进行修改,当修改的时候,修改所有被影响到的节点。但是这样做会TLE,题目中给出了提示,修改的时候,如果搜到了符合条件的区间,本应该继续向下修改,但是我们不往下搜了,用一个lazytag来标记这个节点,等到以后要用它的子节点的时候,再用lazytag更新左右孩子节点,这样就会节省时间。TLE代码:#incl
2016-04-12 15:03:25 420
原创 hiho一下 第九十三周 数论二·Eular质数筛法
快速得求解[1,N]这个区间内素数的个数用到了Eular质数筛法#include #include #define MAX_N 1000000#define MAX_P 78498char isPrime[MAX_N+1];int primeList[MAX_P+1];int main(){ int N, i, j, primeCount; scanf("%d",
2016-04-12 13:57:56 622
原创 hiho一下 第十九周 RMQ问题再临-线段树
相比于之前的题目,数据量扩大为10^6,因此使用线段树来实现有关线段树的详细分析用链表的方式实现#include #define MAX_N 1000000#define MAX_NODE 2000000 //一个二叉树有N个叶子节点,则总的节点数为2N-1 typedef struct NODE{ struct NODE *left, *right, *father; i
2016-04-11 20:33:54 444
原创 hiho一下 第十八周 RMQ问题再临
相比于之前的RMQ问题,这道题增加了修改功能,鉴于数据规模比较小,可以增加一个Adjust(),用于调整min[][]的值代码如下:#include #include #define MAX_N 10000 int weight[MAX_N], N;int min[MAX_N][14]; //min[i][j]存储从i开始,长度为2^j序列中的最小值 int Min(int
2016-04-09 10:13:59 535
原创 hiho一下 第十六周 RMQ-ST算法
RMQ (Range Minimum/Maximum Query)问题:对于长度为N的数列a,若干次查询,每次给出R和L,a[L——R]的最小(大)值,也就是说,RMQ问题是指求区间最值的问题。此题要求最小值首先进行预处理,计算从任意位置i开始的2^j长度的序列中的最小值,并存储到min[i][j]中,初始化min[i][0]=weight[i](weight[]存储数列),从i开始的
2016-04-08 21:02:55 549
原创 hiho一下 第九十二周 数论一·Miller-Rabin质数测试
用Miller-Rabin算法测试素数用了两种实现方式参考Wikipedia#includetypedef long long LL;//计算a*b(mod n) LL PowerMulti(LL a, LL b, LL n){ LL ans = 0; while(b){ if(b&1){ ans = (ans+a)%n; } b >>= 1; a
2016-04-08 13:18:59 584
原创 hiho一下 第九十一周 Events Arrangement
时间限制:20000ms单点时限:1000ms内存限制:256MB描述There are n events in the parade. Each one can be performed for at most k times.The parade will last for m minutes. The major will give a talk at t
2016-04-05 22:28:48 406
原创 hiho一下 第九十周 Swimming Plans
时间限制:10000ms单点时限:1000ms内存限制:256MB描述Steven loves swimming! The swimming pool he goes to every afternoon consists of N parallel lanes which are number from 0 to N-1. Steven plans to swim
2016-04-03 22:39:28 465
原创 C++ 定义静态数据成员
静态数据成员必须初始化如果初始化时没有赋值,用户定义的类将调用默认的constructor;buind-in type将初始化为0例如#includeusing namespace std;class Class{ public: static int i;}; int Class::i;int main(){ Class a; cout << a.i << e
2016-03-29 15:01:34 574
原创 hiho一下 第八十九周 Divisors
描述Given an integer n, for all integers not larger than n, find the integer with the most divisors. If there is more than one integer with the same number of divisors, print the minimum one.输入One
2016-03-18 20:02:00 389
原创 Thinking in c++ exercise 4-26 关于二维数组指针
题目描述:Write a function that takes two int arguments,rows andcolumns. This function returns a pointer to a dynamicallyallocated two-dimensional array offloat. As a hint, the first call tonew is:
2016-03-12 13:49:01 363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人