08 2013 档案
摘要:第6题是利用周期性求解,第7题是 (总的序列长度-最长的满足要求的序列长度)第8题是 设定起点,可以找到最早出现的不满足条件,然后后面都是不满足的,利用队列求解这个过程大神给的简单,精炼的题解。1. 消除之王数据量为4*4,所以直接暴力dfs的层数不会超过8层,也就是dfs的复杂度为8!,然后加上一些模拟掉落的操作,总的复杂度也不会大。2. NC大数开根求整数部分。 网上大神有直接的模板附模板一份:#include #include int l;int work(int o,char *O,int I) {char c, *D=O ;if(o>0){for(l=0;D[l ];D[l++
阅读全文
摘要:#define N 100100#define M 200200int n,m;int id,index; //id表示缩点后点的id,index表示进行tarjan算法时访问的点先后int vis[N],low[N]; //vis表示到当前点的时间,low表示当前所能到达的最小时间.int stk[N],top; //表示栈int mark[N];int link[N]; //将点与缩点后的点相连.int sum[N]; //强连通分量中点的个数void dfs(int tarjan_s){ vis[tarjan_s]=++index; low[tarjan_s]=vis[tar...
阅读全文
摘要:艰难的一道题,体现出菜菜的我。。。首先,先吐槽下。 这题到底出题人是怎么想的,用普通概率dp水过??? 那为什么我概率dp写的稍微烂点就一直tle? 感觉很不公平。大家算法都一致,因为我程序没有那么简练就过不了。 太坑了。。。当然,说到底还是实力的问题,谁叫你不会一些常数级别的优化。 谁叫你写的时候不写的好一点。比赛的时候在速度秒掉了最后两题后,卡这道题卡了4个多小时,也没有心情去看其他的题目了。 期间想了各种优化的方法。 最后因为一个小错误wa了N次后没有过而遗憾终身。。。1. 直接 概率dp ,时间可能会很长,因为循环的次数达到了10^8次方,所以循环最内部的运算必须不能过多。 如果剩去%
阅读全文
摘要:算是挺简单的一道概率dp了,如果做了前面的聪聪于可可的话,这题不需要什么预处理,直接概率dp就行了。。。#include #include #include #include #include #include #include #include #include using namespace std;#define INF 0x3fffffff#define N 2020double p[N][5];int n,a,b;double dp[N][5];void dfs(int s,int k){ if(dp[s][k]>=0) return ; double tmp=0; ...
阅读全文
摘要:感觉挺经典的一道题目。 先用 bfs 预处理下一步走到的位置。因为每一步走法都是固定的,所以可以用dp的方法来做。1415: [Noi2005]聪聪和可可Time Limit:10 SecMemory Limit:162 MBSubmit:467Solved:276[Submit][Status]DescriptionInput数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数。 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号。 接下来E行,每行两个整数,第i+2行的两个整数Ai和Bi表示景点Ai和景点Bi之间有一条路。 所
阅读全文