09 2017 档案
摘要:#include using namespace std; int main() { int i,j,dp[2][10086],t; char a[10086],b[10086]; bool now,pre; scanf("%d",&t); while(t--) { scanf("%s%s",a,b); me...
阅读全文
摘要:两个长度分别为p+1和q+1的由1到n2之前的整数组成的序列,每个序列的元素各不相等,两个序列第一个元素均为1。求两个序列的最长公共子序列 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_
阅读全文
摘要:有一个强盗要去几个银行偷盗,他既想多投点钱,又想尽量不被抓到。已知各个银行 的金钱数和被抓的概率,以及强盗能容忍的最大被抓概率。求他最多能偷到多少钱? 解:以概率为价值 问价值在合理范围背包的最大容量
阅读全文
摘要:#include #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #define TS printf("!!!\n") #define pb push_back //std::ios::sync_with_stdio(false); using namespace std; //priority_queue,grea...
阅读全文
摘要:#include #include #include #include #include using namespace std; const int maxn = 200005; const int maxm = 800005; int h[maxm], num[maxn]; int n, m; int lowbit(int x) { return x & (-x); } v...
阅读全文
摘要:#include #include #include #include #include #include #include #include #include #include #define ll __int64 #define lll unsigned long long #define MAX 1000009 #define eps 1e-8 using namespace std...
阅读全文
摘要:给你一个LL范围内的区间,问你在这个区间内最长递增子序列长度恰为K的数有多少个
阅读全文
摘要:计算区间内一个数字各位之和能整除该数字的个数 d[l][i][j][k]表示前l位和为i模j的结果为k的数的个数,那么就有方程 d[l+1][i+x][j][(k*10+x)%j] += d[l][i][j][k] 预处理出d[l][i][j][k],再逐位统计即可。
阅读全文
摘要:"Round Number "被称为其二进制形式中0的个数比1的个数多。求[x,y]区间内“Round Number”的个数。 解1: dp[pos][num],到当前数位pos,0的数量减去1的数量为num的方案数,一个简单的问题,中间某个pos位上num可能为负数(这不一定是非法的,因为我还没枚
阅读全文
摘要:给一颗n个点的有点权的树,有m个询问,对于每个询问u,v,k,首先将点u到点v的最短路径上的所有点按顺序编号,u的编号为1,求树链上所有点的新编号cnt满足cnt%k==0的点的权值的最大值。n,m,k<=10^5 根据k的大小分成两部分处理。原问题可转化为 deep[i] % k = a / b
阅读全文
摘要:给你一个有向图,然后问你,加入多少条边,能使这个图构成成一个强连通分量 首先,把强连通分量缩成一个点,然后现在就成了一个dag,这个dag中 看只有入度 和只有出度的点 取max就好了 #include <cstdio>#include <cstdlib>#include <cmath>#inclu
阅读全文
摘要:给出一个连通图,并给每个点赋一个d值0或1或-1,要求选出一个边的集合,使得所有的点i要么d[i] == -1,要么 dgree[i] % 2 == d[i],dgree[i]代表i结点的度数。 考虑一条边都不选的情况,此时所有d[i] == 0的i都满足了题目要求, 此时如果有d[i] == 1的
阅读全文
摘要:Johnny is a brilliant mathematics student. He loves mathematics since he was a child, now he is working on his PhD thesis. He faces a small mathematic
阅读全文
摘要:初始的时候有一个只有n个点的图(n <= 1e5), 现在进行m( m <= 1e5 )次操作 每次操作要么添加一条无向边, 要么询问之前结点u和v最早在哪一次操作的时候连通了
阅读全文
摘要:在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。 HDU 1284 HDU2069 给你五种硬币:1,5,10,25,50,现在给出一个n,求出用这些组成价值n的种类数 特别注意:使用硬币数不能超过100
阅读全文
摘要:F(x) Time Limit: 1000/500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3530 Accepted Submission(s): 1317 Problem Des
阅读全文
摘要:«问题描述:在一个有m*n 个方格的棋盘中,每个方格中有一个正整数。现要从方格中取数,使任意2 个数所在方格没有公共边,且取出的数的总和最大。试设计一个满足要求的取数算法。«编程任务:对于给定的方格棋盘,按照取数要求编程找出总和最大的数。«数据输入:由文件grid.in提供输入数据。文件第1 行有2
阅读全文
摘要:最大独立集: 顶点集V中取 K个顶点,其两两间无连接。 最大团: 顶点集V中取 K个顶点,其两两间有边连接。 最大独立集=补图的最大团最大团=补图的最大独立集
阅读全文
摘要:题目描述: 对于一棵树,独立集是指两两互不相邻的节点构成的集合。例如,图1有5个不同的独立集(1个双点集合、3个单点集合、1个空集),图2有14个不同的独立集,图3有5536个不同的独立集。 输入: 第一行一个正整数n,表示点的数量。n最大为100000。 接下来n-1行,有两个整数a、b,表示编号
阅读全文
摘要:«问题描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m 道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算法。«编程任务:对于给定的组卷要求,计算满足要求的组卷方案。«数据输入:由文件testlib.in提供输入数据。文件
阅读全文
摘要:在v个村庄中建立p个邮局,求所有村庄到它最近的邮局的距离和,村庄在一条直线上,邮局建在村庄上。 思路:首先求出在连续的几个村庄上建立一个邮局的最短距离,用数组dis[i][j]表示在第i个村庄和第j个村庄之间建一个邮局的最短距。 !!!!!!!!!dis[i][j]=dis[i][j-1]+x[j]
阅读全文
摘要:一层一层删 链表模拟 最开始写的是一个一个删的 WA #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #define TS printf("!!!\n") #define
阅读全文
摘要:每个格子(x,y,drection,color)
阅读全文
摘要:看是否有欧拉回路 有的话打印路径 欧拉回路存在的条件: 如果是有向图的话 1.底图必须是连通图 2.最多有两个点的入度不等于出度 且一个点的入度=出度+1 一个点的入度=出度-1 如果是无向图的话 1.如果这个无向图的连通的 当最多只有两个度数为奇数的点 就一定有欧拉回路 当有两个度数为奇数的点的时
阅读全文
摘要:In Takahashi Kingdom, which once existed, there are N cities, and some pairs of cities are connected bidirectionally by roads. The following are known
阅读全文
摘要:3、链式前向星 链式前向星和邻接表类似,也是链式结构和线性结构的结合,每个结点i都有一个链表,链表的所有数据是从i出发的所有边的集合(对比邻接表存的是顶点集合),边的表示为一个四元组(u, v, w, next),其中(u, v)代表该条边的有向顶点对,w代表边上的权值,next指向下一条边。 具体
阅读全文
摘要:有n件工作要分配给n个人做。第i 个人做第j 件工作产生的效益为Cij 。试设计一个将 n件工作分配给n个人做的分配方案,使产生的总效益最大。 编程任务: 对于给定的n件工作和n个人,计算最优分配方案和最差分配方案。 把所有人看做二分图中顶点Xi,所有工作看做二分图中顶点Yi,建立附加源S汇T。 1
阅读全文
摘要:建立二分图,每个单位为X集合中的顶点,每个餐桌为Y集合中的顶点,增设附加源S和汇T。 1、从S向每个Xi顶点连接一条容量为该单位人数的有向边。 2、从每个Yi顶点向T连接一条容量为该餐桌容量的有向边。 3、X集合中每个顶点向Y集合中每个顶点连接一条容量为1的有向边。 求网络最大流,如果最大流量等于所
阅读全文
摘要:给定有向图G=(V,E)。设P 是G 的一个简单路(顶点不相交)的集合。如果V 中每个 顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖。 P 中路径可以从V 的任何一个顶 点开始,长度也是任意的,特别地,可以为0。G 的最小路径覆盖是G 的所含路径条数最少 的路径覆盖。 设计一个有效算法求一个
阅读全文
摘要:1、建立两个超级点S,T。 2、对每个实验跟S链接一条容量为收入的边。 3、对每个一起跟T链接一条容量为花费的边。 4、对每个实验要用到的一起链接一条容量为无穷大的边。 链表 容器实现
阅读全文
摘要:假设有10个驾驶员,如图中的V1,V2,…,V10就代表达10个驾驶员,其中V1,V2,V3,V4,V5是正驾驶员,V6,V7,V8,V9,V10是副驾驶员。 如果一个正驾驶员和一个副驾驶员可以同机飞行,就在代表他们两个之间连一条线,两个人不能同机飞行,就不连。例如V1和V7可以同机飞行,而V1和V
阅读全文
摘要:Ford-Fulkerson方法依赖于三种重要思想,这三个思想就是:残留网络,增广路径和割。 Ford-Fulkerson方法是一种迭代的方法。开始时,对所有的u,v∈V有f(u,v)=0,即初始状态时流的值为0。在每次迭代中,可通过寻找一条“增广路 径”来增加流值。增广路径可以看成是从源点s到汇点
阅读全文
摘要:hdu 1532 题目大意: 就是由于下大雨的时候约翰的农场就会被雨水给淹没,无奈下约翰不得不修建水沟,而且是网络水沟,并且聪明的约翰还控制了水的流速,本题就是让你求出最大流速,无疑要运用到求最大流了。题中N为水沟数,M为水沟的顶点,接下来Si,Ei,Ci分别是水沟的起点,终点以及其容量。求源点1到
阅读全文
摘要:预处理+递推 记忆化搜索 记忆化搜索 V2
阅读全文
摘要:还是给你石头n枚,每一枚石头有两个值a和b,每取一个石头,除了这块石头其余所有的石头的a就都减去这个石头的b,问你取了的石头的a的总和最大可以为多少? 先按B从大到小排序 然后DP: 取的话:dp[i][j]=dp[i-1][j-1]+a[i]-b[i]*(j-1) 注意是j-1 不取的话:dp[i
阅读全文
摘要:1.’&’符号,x&y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。例如3(11)&2(10)=2(10)。 2.’|’符号,x|y,会将两个十进制数在二进制下进行或运算,然后返回其十进制下的值。例如3(11)|2(10)=3(11)。 3.’^’符号,x^y,会将两个十进制数在二
阅读全文
摘要:使用动态规划方法解题,对于不少问题之所以具有较高的时间效率,关键在于它减少了“冗余”。所谓“冗余”,就是指不必要的计算或重复计算部分,算法的冗余程度是决定算法效率的关键。动态规划在将问题规模不断缩小的同时,记录已经求解过的子问题的解,充分利用求解结果,避免了反复求解同一子问题的现象,从而减少了冗余。
阅读全文
摘要:最长路: 设置一个虚拟起点和虚拟终点,每个点与起点间一条负边,值为这个点书的价值的相反数(代表买书花钱),每个点与终点连一条正边,值为这个点的书的价格(代表卖书赚钱)。 然后按照图中给的边建无向边,权值为负(代表路费)。跑最长路,spfa改一下松弛条件就行 树形DP: 设1为根节点,假设一开始一个人
阅读全文
摘要:2、最大子矩阵和问题 (1)问题描述:给定一个m行n列的整数矩阵A,试求A的一个子矩阵,时期各元素之和为最大。 (2)问题分析: 用二维数组a[1:m][1:n]表示给定的m行n列的整数矩阵。子数组a[i1:i2][j1:j2]表示左上角和右下角行列坐标分别为(i1,j1)和(i2,j2)的子矩阵,
阅读全文
摘要:最大字段和 O(N)
阅读全文
摘要:给定n个数字,求其中m段的最大值(段与段之间不用连续,但是一段中要连续) 例如:2 5 1 -2 2 3 -1五个数字中选2个,选择1和2 3这两段。 dp[i][j]从前j个数字中选择i段,然后根据第j个数字是否独立成一段,可以写出 状态转移方程:dp[i][j]=max(dp[i][j-1]+n
阅读全文
摘要:n个人拿K个钥匙中的n个然后到办公室(点p) 问最少需要的时间是多少 先排序 如果j<=i 则必须拿这个钥匙 反之 则可以选择拿或者不拿
阅读全文
摘要:数组是最常用的数据结构之一,现在我们对数组的下标进行特殊处理,使每一次操作仅保留若干有用信息,新的元素不断循环刷新,看上去数组的空间被滚动地利用,此模型我们称其为滚动数组。其主要达到压缩存储的作用,一般常用在DP类题目中。因为DP题目是一个自下而上的扩展过程,我们常常用到是连续的解,而每次用到的只是
阅读全文
摘要:#include #include #include #include using namespace std; const int size = 100010; int maxx[size][32],minn[size][32]; int n; void init() { int k = log2(n); for(int j = 1;j <= k;j ++) { ...
阅读全文
摘要:2.1 查找第一个与key相等的元素 查找第一个相等的元素,也就是说等于查找key值的元素有好多个,返回这些元素最左边的元素下标。 2.2 查找最后一个与key相等的元素 查找最后一个相等的元素,也就是说等于查找key值的元素有好多个,返回这些元素最右边的元素下标。 2.3 查找最后一个等于或者小于
阅读全文
摘要:设f[i][j]为杀第j只怪时耐久度为i的最大经验值 完全背包类型:有N种物品和一个容量为V 的背包,每种物品都有无限件可用。放入第i种物品的耗费的空间是Ci,得到的价值是Wi。 求解:将哪些物品装入背包,可使这些物品的耗费的空间总和不超过背包容量,且价值总和最大。
阅读全文
摘要:飞行棋游戏 问从0结束游戏的投色子次数期望是多少 设dp[i]表示i到n的期望,那么可以得到dp[i]=(dp[i+1]+dp[i+2]+dp[i+3]+dp[i+4]+dp[i+5]+dp[i+6])/6+1,另外注意飞行航道和处理离终点6以内的特殊点。
阅读全文
摘要:cost->体积 weight->价值 hdu2844 可达/不可达 普通模板 hdu2191
阅读全文
摘要:H:题目看错 背锅 G:每个test 后面没换行 背锅 J!!!!!!:最小费用最大流 每个城市拆成出点和入点,源点连西安和大连,汇点连上海,相当于求从西安到上海和从大连到上海最小距离之和,每个城市入点和出点之间连一条容量为1的边,但是注意,上海的容量必须是2,再根据给出的边,分别连接出点入点,存入
阅读全文
摘要:先把小数乘100变成整数然后处理每个发票里面可以报销的 最后自底向上DP
阅读全文
摘要:D. Arpa and a list of numbers time limit per test 2 seconds memory limit per test 256 megabytes Arpa has found alist containingn numbers. Hecalls a li
阅读全文
浙公网安备 33010602011771号