posted @ 2015-04-15 18:04
04 2015 档案
摘要:这道题做得有点醉,根本没明白题目什么意思....做了半天才发现不对....涉及到概率方面最基本的乘法定则...#include#includedouble dp[10001];double max(double a,double b){ if(a>b) return a; ...
阅读全文
摘要:发票的额度是小数,但是只要求精确到两位,所以我们把初始数据乘以100进行处理。这道题我比较纠结的是dp的数组到底开多大...开大了内存超限,小了数组越界。#include#includeint val[50];//记录符合报销条件的发票的额度。(乘以100以后)int tmp[26];//临时记录发...
阅读全文
posted @ 2015-04-15 18:01
摘要:又被题意坑了...输入的一串数字的含义是第i个数字是第a[i]个发生的。而不是编号为i的历史事件的实际发生顺序。所以第一步要做的是转换,将原始数据转换成编号为i的历史事件的实际发生顺序。然后按照实际的发生顺序在aaa数组中给予权值,这是为了方便之后判断学生的答案中两个数字的相对顺序。#include...
阅读全文
posted @ 2015-04-15 17:54
摘要:#include#includeint bot[30005];//以每个集合最底下的那个立方体作为根节点,初始化为自己本身int sum[30005];//表示以该元素为父亲节点的元素的编号的增量int cisum[30005];//根节点所在集合的立方体总数int num[30005];//记录每...
阅读全文
posted @ 2015-04-11 09:20
摘要:种类并查集,基本思想是每次压缩路径都必须同时更新子节点和根节点的关系,这种关系是通过子节点和父亲节点的关系,以及父亲节点与根节点的关系运算出来。压缩路径的findme();参考了大神的代码,做的第二个种类并查集....#include#includeint cri[100005];//记录每一个元素...
阅读全文
posted @ 2015-04-11 09:05
摘要:菜鸟第一次做这种。想了好一会儿.==首先还是初始化记忆数组,使得每一个元素的初始根节点是自己。然后是对输入的数据进行并集。我们拿出每组元素的第一个作为根节点。每次检测是否已经存在根节点。如果存在根节点压缩该元素通往新的根节点的路径,同时将其原来的根节点接在新的根节点上。第一次WA是因为忽略了剩余元素...
阅读全文
posted @ 2015-04-08 18:02
摘要:并查集思想,初始化每个元素的根节点为本身。求解目标是求解存在几个集合。解决方案:查看有多少个根节点,表现在记忆数组上就是有多少个元素的根是它本身。#include#define M 50005int ji[M];int findme(int a){ while(ji[a]!=a) { ...
阅读全文
posted @ 2015-04-08 16:55
浙公网安备 33010602011771号