11 2016 档案
摘要:题目链接:http://vjudge.net/contest/143318#problem/B 题意:给定一个有向图,每条边都有一个权值。每次你可以选择一个结点v和一个整数d,把所有以v为终点的边的权值减小d,把所有以v为起点的边的权值增加d,最后让所有边的权值的最小值大于零且尽量大。 分析: 最小
阅读全文
摘要:题目链接:http://vjudge.net/contest/143318#problem/A 题意: 求平均权值最小的回路。 分析: 平均权值不可能超过最大边,二分查,然后,由于是平均权值,就可以转换一下。 是否存在平均权值 < mid 的回路: w1 + w2 +.. +wk < k*mid (
阅读全文
摘要:看来一千个acmer有一千个迪杰斯特拉,Bellman-Ford也是一样。 看了刘汝佳的bellman-ford,简直和spfa一模一样啊!!! 松弛n -1 次还是可以松弛,说明有负环; 刘汝佳写得很有水平,学习了。每个点都有可能从这个点出发找到负环,都入队列,相互间分开,找第一个点,找到负边,入
阅读全文
摘要:题目链接:http://vjudge.net/contest/143062#problem/C 题意: 给定一个无向图,大写字母是城市,小写字母是村庄,经过城市交过路费为当前货物的%5,路过村庄固定交1,给定起点终点和到目标地点要剩下的货物,问最少要带多少货物上路,并输出路径,如果有多种方案,要求字
阅读全文
摘要:题目链接:http://vjudge.net/contest/143062#problem/A 题意:一个人要从点1去到点2,中间还有很多点和很多条边。问你如果他每次走的边(a,b)都满足:a点到目标点的最短距离<b点到目标点的最短距离,那么他从点1出发到点2总共有多少条路径。 分析: 从家出发使用
阅读全文
摘要:题目链接:http://vjudge.net/contest/142615#problem/B 题意:有A,B,C三个人物要分配个N个宇航员,每个宇航员恰好要分配一个任务,设平均年龄为X,只有年龄大于或等于X的宇航员才能分配任务A。只有年龄严格小于X的宇航员才能分配任务B。而任务C没有限制。有M对宇
阅读全文
摘要:2-SAT: n 个 bool 型变量, 有一些条件,要么 X 成立,要么 Y 成立。 目标: 给每个变量赋值,使得所有条件成立。 拆点: i 变量 为真表示2*i,为假 表示 2*i + 1; 这时,如果有一个条件为 x 成立,y 不成立,就连一条边 2*i —> 2*j + 1; 在这个图上搜索
阅读全文
摘要:题目链接:http://vjudge.net/contest/142615#problem/A 题意:n架飞机,每架可选择两个着落时间。安排一个着陆时间表,使得着陆间隔的最小值最大。 分析: 最小值最大,采用二分法,时间间隔最大不超过最晚的一个时间,对于每个时间间隔来说,在此间隔要求下,建立 2-S
阅读全文
摘要:题目链接:http://vjudge.net/contest/142513#problem/A 题意:给出一些字符和各自对应的选择概率,随机选择L次后将得到一个长度为L的随机字符串S.给出K个模版串,计算S不包含任何一个串的概率. 分析: 在构造好的AC自动机里面,每随机生成一个字母,相当于在AC自
阅读全文
摘要:题目链接:http://vjudge.net/contest/142484#problem/A 这个题目也是2016年CCPC网赛上面的题目,当时我是不会做的,但是大牛们都知道这是一个原题,最后给一队过了,还是大牛们厉害,其实也不是很难。 题意: 给出n个正整数,从中选出1个或者多个,使得选出来的整
阅读全文
摘要:题目链接:http://vjudge.net/contest/141990#problem/B 题意: 给一张有向图G,求一个结点集数最大的结点集,是的该结点集中任意两个结点 u 和 v,满足: 要么 u 能到达 v,要么 v 能到达 u 或者 u 和 v 可以互达 ; 这个和有向强连通图很像,连通
阅读全文
摘要:题目链接:http://vjudge.net/contest/141990#overview 题意是告诉你有n个命题,m条递推关系,表示某个命题可以推出另外一个命题。 现在问你至少在增加多少个递推关系可以保证所有命题两两互推。 把命题看成一个结点,推导看成有向边,就是n个结点,m 条有向边,要求添加
阅读全文
摘要:在同一个DFS树中分离不同的强连通分量SCC; 考虑一个强连通分量C,设第一个被发现的点是 x,希望在 x 访问完时立刻输出 C,这样就可以实现 在同一个DFS树中分离不同的强连通分量了。 问题就转换为判断,一个点是否 是 第一个被发现的点,这样,可以利用之前的 点-双连通分离的数据结构, lowl
阅读全文
摘要:有向图的强连通分量: 相互可达关系,每一个集合都是有向图的一个强连通分量SCC。 把一个集合看成一个点,SCC就形成了一个有向无环图——DAG; 如果DFS选择不好,从A点开始DFS,就会把整张图遍历一遍。不是同一个SCC就混乱了,我们希望,可以利用SCC的拓扑序列,从后往前DFS,这样,每次都出来
阅读全文
摘要:题目链接:http://vjudge.net/contest/141787#problem/B 白书P318 题目大意:有N个矿井 ,由一些隧道连接起来,现在要修建尽量少的安全通道,使得无论哪里发生事故,所有人均能逃出,求建的最少的安全通道数量和方案数. 分情况讨论: 在一个无向图上选择尽量少的点涂
阅读全文
摘要:题目链接:http://vjudge.net/contest/141787#problem/A http://poj.org/problem?id=2942 此题很经典 知识点:DFS染色,点-双连通 题意: 亚瑟王要在圆桌上召开骑士会议,为了不引发骑士之间的冲突,并且能够让会议的议题有令人满意的结
阅读全文
摘要:双连通包括两种: 1、点-双连通: 任意两点之间至少存在两条“点不重复”的路径,即内部无割顶。 2、边-双连通: 任意两点之间至少存在两条“边不重复的”路径,即内部无桥。 如图: 两个点-双连通分量:{1,2,3}、{3,4,5}; 一个边-双连通分量:{1,2,3,4,5}; 还是利用无向图的割顶
阅读全文
摘要:割顶: 关键点,删掉这个点后,图的连通分量 + 1; 桥: 在割顶的基础上,发现删除 (u,v) 这条边,图就变成非连通的了。 如何找出所有割顶和桥: 时间戳: 在无向图的基础上,DFS建树的过程中,各点进栈和出栈的时间 dfs_clock,进栈的时间 pre[],出栈的时间 post[] 在DFS
阅读全文
摘要:2971:抓住那头牛 2971:抓住那头牛 查看 提交 统计 提问 查看 提交 统计 提问 总时间限制: 2000ms 内存限制: 65536kB描述 农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有
阅读全文
摘要:8465:马走日 8465:马走日 查看 提交 统计 提问 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 1024kB描述 马在中国象棋以日字形规则移动。 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋
阅读全文
摘要:题目链接:https://uva.onlinejudge.org/external/105/10562.pdf 紫书P170 直接在二维数组上做DFS,用的fgets函数读入数据,比较gets函数安全,但是会读入 \n,在 DFS 的时候,下一个状态要 不等于空格,并且不等于 \n; #includ
阅读全文
摘要:#include <stdio.h> #include <stdlib.h> /**************************************/ /* 链表实现的头文件,文件名slnklist.h */ /**************************************/
阅读全文
摘要:1004: This is Halloween: Saving Money Time Limit: 1 Sec Memory Limit: 128 MB Submit: 11 Solved: 2 Description The Mayor of Halloween Town was always c
阅读全文
摘要:1005: Coffin Tiles Time Limit: 1 Sec Memory Limit: 128 MB Submit: 2 Solved: 2 Description The Pumpkin King has a great idea for this Christmas: Person
阅读全文
摘要:1002: Robot Navigation Time Limit: 1 Sec Memory Limit: 128 MB Submit: 4 Solved: 2 Description A robot has been sent to explore a remote planet. To spe
阅读全文
摘要:1003: All Your Base Time Limit: 1 Sec Memory Limit: 128 MB Submit: 4 Solved: 2 Description Premise: Given a specification for a “base” (well, actually
阅读全文
摘要:题目链接:https://uva.onlinejudge.org/external/15/1599.pdf 题意: 保证在最短路的时候,输出字典序最小的路径。 方法: 路径上有了权值,可以利用图论的数据结构来BFS,很方便。 逆序BFS,找到每个点距离终点的最短路长 d[x] ; 然后,从起点,沿着
阅读全文
摘要:题目链接:https://uva.onlinejudge.org/external/101/10129.pdf 把单词的首字母和最后一个字母看做节点,一个单词就是一个有向边。有向图的欧拉定理,就是除了起点和终点外,其他的点,出度等于入度,而且,起点和终点的出度和入度相差 1 ,这个在上一篇文章中证明
阅读全文
摘要:每条边经过一次 —— 欧拉道路(俗称一笔画) 证明:(前题条件是:底图是连通的) 无向图:进和出是对应的(除了起点和终点),其他点的进和出数应该相等,也就是说,这个点的度应该是偶数,最多两个点可以是奇点,而且是从一个奇点出发,另一个奇点结束。全部都是偶点,就可以从任意点出发,从该点结束。 有向图:同
阅读全文
摘要:题目链接:https://uva.onlinejudge.org/external/103/10305.pdf 紫书P167 拓扑排序。 dfs——从一个点出发,dfs 与之相连的所有点,把本身放入到拓扑排序的首部。 #include <bits/stdc++.h> using namespace
阅读全文
摘要:题目链接:https://uva.onlinejudge.org/external/8/816.pdf 紫书:P165 题意: 有一个最多包含9*9个交叉点的迷宫。输入起点、离开起点时的朝向和终点,求一条最短路(多解时任意输出一个即可)。 分析: BFS的结点对状态转移的影响的因素有哪些,那么这个结
阅读全文
摘要:题目链接:http://vjudge.net/contest/140550#problem/B 紫书P163. 1、根据16进制图转成2进制图。 每个点dfs一下,马上就把最外围的连通分量编号求出来了为1,这个不是文字里面的空白。 2、求每个文字,四周的空白有多少。——用一个set容器,当你查看这个
阅读全文
摘要:题目链接:https://uva.onlinejudge.org/external/101/10118.pdf 参考:http://www.cnblogs.com/kedebug/archive/2013/04/07/3006493.html 刚开始,我想到了dp状态的描叙,d(a,b,c,d) 从
阅读全文
摘要:紫书P182 直接枚举 0~9 的全排列会超时,枚举fghij就可以了,计算出 abcde ,这里有一个新的函数,也可以不用咯,把每一位数据提取出来,while循环可以做到,这里的新的函数是,sprintf(buf,"%5d%5d",abcde,fghij); 格式化提取,把abcde,fghij每
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/9268/ 题意:有N瓶酒,不能连续喝>=3瓶的酒,问能喝的最大的酒量。 f[i][j] 前 I 瓶中连续喝了 j 瓶的最大酒量 f[i][0] = f[i-1][3]; f[i][1,2] = f[i-1][j-1] + a[
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/2989/ 首先,数据很大,直接用背包会re。 这里增加的是对%k 的余数维度。f[i][j] 表示前 i 种糖果取到总颗数模 k 余数为 j 的最大颗数。 注意一定要先将 f[i-1][j] 转移到 f[i][j] ,再枚举余
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/9271/ 同noi 踩方格,但是题目有问题,%12345,我也是看了discuss才知道的。 #include <bits/stdc++.h> using namespace std; unsigned long long d
阅读全文
摘要:#include <stdio.h>#include <stdlib.h>/**************************************//* 链表实现的头文件,文件名slnklist.h *//**************************************/ #inc
阅读全文
摘要:/**********************************//*顺序表的头文件,文件名sequlist.h*//**********************************/ #include <stdio.h> #include <stdlib.h> /************
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/8787/ 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。 简直跟分苹果一模一样。
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/1768/ 可能是数据修改了吧,O(n6)过不了了。 主要是在求一个矩阵的和时,重复计算了很多次。 矩阵首先压缩一下。在输入的时候,就计算好每一列的和于a[i][j]中。 dp: 枚举上界(第一重循环),枚举下界(第二重循环),
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/9267/ 描述 一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。 任务:对于给定的N和M,求不发生爆炸的放置核物质的方案总数 f[i][j]表示前i个
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/6045/ 解题报告:参考了konjac 蒟蒻的。 题意: 有N个地址,从中选一些开餐馆,要保证相邻餐馆的距离大于k。问最大利润。 解法: f[i] 表示 前 i 个地址中选取的最大利润。
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/4978/ 二维费用背包 在最后找还剩多少体力的时候,直接找到第二维,当结果 f[n][i] == f[n][m] 时,就说明已经到达上限了 剩下的体力 = m-i; http://paste.ubuntu.com/234111
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/7627/ 题目讲的二分其实是一个误导, d(i,j),表示当前最优策略时,最坏的情况下: 有 J 个鸡蛋,I 个可以怀疑的楼层,那么在这I个可以怀疑的楼层中,挑一楼来测,取最优值,然而情况有两种,要么碎了 d(k-1,i-1)
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/666/ 和ural 1114题意类似,但是有顺序,5,1,1和1,5,1是同一种序列。不能直接枚举 d(i,j) 前 i 个盘子,用掉 j 个苹果,3重循环。 这里是方案是: m 个苹果,n 个盘子,只有两种情况,要么有空,要
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/9265/ 题意:从自然数1到N中不取相邻2数地取走任意个数,问方案数。 解法:f[i][1]表示在前i个数中选了第i个的方案数,f[i][0]表示没有选第i个。f[i][1]=f[i-1][0]; f[i][0]=f[i-1]
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/4982/ 深搜很好写。 DP:O(n) d[i] 为走 I 不的方案数, l[i],r[i],u[i]为第一步走 左,右,上,共走 i 步的方案数。(u[i]= d[i-1]) d[i] = l[i] + r[i] + u[i
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/8462/ 相邻的两个不能同时取, d[i] = max(d[i-1],d[i-2]+a[i]); http://paste.ubuntu.com/23406668/
阅读全文
摘要:题目链接:http://noi.openjudge.cn/ch0206/1944/ 根据第一天吃的个数递推,发现这个递推关系很像斐波那契数列。 http://paste.ubuntu.com/23402479/
阅读全文
摘要:题目链接: http://noi.openjudge.cn/ch0206/6049/ 6049:买书 6049:买书 查看 提交 统计 提问 查看 提交 统计 提问 小明手里有n元钱全部用来买书,书的价格为10元,20元,50元,100元。 问小明有多少种买书方案?(每种书可购买多本) 和noi29
阅读全文
摘要:题目链接: http://noi.openjudge.cn/ch0206/2985/ 2985:数字组合 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式。如: n=5,5个数分别为1,2,3,4,5,
阅读全文
摘要:题目链接: 很像上一题,加上自己本身,选最优值。 http://noi.openjudge.cn/ch0206/2728/ http://paste.ubuntu.com/23402493/
阅读全文
摘要:题目链接: http://noi.openjudge.cn/ch0206/2718/ 右上角的方案数 f(m,n) = f(m-1,n) + f(m,n-1); http://paste.ubuntu.com/23402490/
阅读全文
摘要:题目链接: http://noi.openjudge.cn/ch0206/4977/ LIS http://paste.ubuntu.com/23406594/
阅读全文
摘要:题目链接: http://noi.openjudge.cn/ch0206/8780/ LDS 也可以转换为LIS
阅读全文
摘要:题目链接: http://noi.openjudge.cn/ch0206/1996/ LIS,LDS 正着做最长递增子序列,反着做最长递减子序列。 http://paste.ubuntu.com/23402475/
阅读全文