摘要:题意: 你需要买一个足球队(11个球员),每个球员有位置、价值。花费,有以下限制: 位置分为前锋(1-3人)、中腰(2-5)、后卫(3-5)、守门员(1) 每个人有 value,总的 value 是每个人的value加起来 ,选一个队长,队长的加两次 每个人有个 cost,总花费不能超过给定值 求:
阅读全文
摘要:#include <math.h> double exp(double x) 求e^x的值 double fmod(double x,double y) 浮点数取模x%y double modf(double x, double *y) 返回x的小数部分,将整数部分给y #include <stri
阅读全文
摘要:题意: 1——n(10^11)的素数个数 思路: 参考:http://blog.csdn.net/chaiwenjun000/article/details/52589457 第一个O(n^(3/4)) 第二个O(n^(2/3))
阅读全文
摘要:题意: 给你一个长为300的序列,每个位置有个代号和价值 如果相邻两个位置的代号不互质就可以得到他们的价值和并移除他们 问最大价值 思路: 区间dp,n才100,直接n*3就可以
阅读全文
摘要:题意: 求L到R区间内,连续奇数个数是偶数,连续偶数个数是奇数的数的个数 思路: 裸数位dp,赛场上忘了不合法的break,妈的调了一个多小时简直是日了狗了! 本来就是蒟蒻还感冒了什么题都写不出来
阅读全文
摘要:题意: n个桌子围成圈m个人,间隔至少k个桌子,问方案数 思路: 这可以推出来一个公式C(n-m*k-1,m-1),然后第一个人有n中选择,每个人是相等的 所以就*n/m就好了,除改成乘逆元就好了
阅读全文
摘要:题意: n个点m条边,问m条边构成的是否为欧拉路。 是的话输出路径上所有点的异或和,每个点经过几次异或几次。 思路: 先用并查集判断是否连通,然后如果是欧拉路的话有两种情况 如果奇数度节点有2个,就枚举这两个点做起点,选大的 如果都为偶数度节点,就枚举n个起点,选大的
阅读全文
摘要:题意: 你有一个容量为【l,r】的壶,你要往两个杯子里倒水 水壶你只能判断是否为空 使得最后杯中水相差<=1升,壶中剩余的水<=1升 思路: 这个题简直太遗憾了 当天网络赛的时候我感冒了很难受状态几乎为0 然后学弟最后40分钟左右的时候把这个题跟我说了一下,我当时就想出来正确的思路 提交完后发现杭电
阅读全文
摘要:参考:http://blog.csdn.net/acdreamers/article/details/8037918 NM较小 const int N = 1e6+5; const int mod = 1e9+7; int f[N]; int inv(int x) { int ret=1,y=mod
阅读全文
摘要:题意: 给你一个序列,q个询问l,r 要求出l到r区间内出现偶数次的数的异或值 思路: 预处理异或前缀sum 将询问按r放入vector,存的pair<l,i> 树状数组部分有点同于求区间数的种数。 last记录每个数前一次出现的位置。 走到i时,如果a[i]出现过,那么把他上次出现的位置异或掉,再
阅读全文
摘要:题意: 给你两个串,每个串有LRU三个操作,L(R)为去左(右)子树,U为回到父亲(根节点不作处理) 然后按这样的规则遍历完第一个串,将现在的位置作为第二个串的起始位置 然后遍历第二个串,第二个串的每个位置都可以执行或者不执行,U操作为将原点倒退(按第一个串行进的过程反向) 问你最多能到多少个节点
阅读全文
摘要:题意: 有N节课,每节课有起止时间和学生数 然后给你M是每个教室容纳的学生数 然后给你n*n的矩阵表示上完第i节课然后上第j节课需要a[i][j]的时间调整 第i节课结束时间加上调整时间要严格小于第j节课的开始时间 问你最少需要多少个教室 思路: 很简单的一个最大流 每节课分为两个节点,0为超级源点
阅读全文
摘要:题意: Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000)。给你两个顶点S和T ,求一条路径,使得路径上最大边和最小边的比值最小。如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出 这个比值,如果需要,表
阅读全文
摘要:题意: Description 现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、 插入操作。语法:A n 功能:将n加 上t,其中t是最近一次查询操作的答案(如果还未执行过查
阅读全文
摘要:题意: 一共有n天,每天都要把货物从1运到m,代价是路长 然后每个地方都可能有几天不能走 然后你就必须改变路线在那天避开这些地方,这需要代价k 问你n天的最小代价 思路: 一共最多100天,可以n^2暴力时间段,表示这段时间的路径是一样的 然后跑dijkstra,得出最优解 然后用dp更新状态 比如
阅读全文
摘要:题意: 小Hi和小Ho最近在研究内存分配的机制,他们写了一个比较简单的内存。内存可以表示成M个连续的存储空间,下标为0..M-1: 每当有数据写入时,内存分配程序会从下标0开始向右找一块足够存放下该数据的区域,将该数据写入。比如写入一个长度为2的数据,因为是第一个数据,我们用1来表示: 之后继续依次
阅读全文
摘要:题意: 给定一颗以1为根节点的树,每个节点有一个购入价格p和卖出价格q。 进入一个节点时需要花费p,离开时可以收回q,每个节点只产生一次购入和卖出。 请你选择一个遍历的顺序,要求在遍历的过程中身上的钱数不小于0,且出发时带的钱数最少。 按照遍历的顺序是指:当你选择了一颗子树之后,你需要将这个子树全部
阅读全文
摘要:题意: 给定一张N个点的完全图,可以从任何一个点出发,同一个点可以经过多次。询问总路径长度不超过M的情况下,最多能够经过多少个点。 思路: 首先我们能够想到一个最简单的模拟算法。 建立数组dist[][],dist[i][j]表示经过i个点后,最后停留在j所以经过的最短路径长度。 那么有如下递推公式
阅读全文
摘要:题意: 给你一个n*m的矩阵,矩阵中有.和#,#表示两图重合的部分,边缘没有# 然后要你构造两个n*m的图,要求#是连通的,然后合并之后重合的部分就是原图中的# 思路: 又是一到思路题 当时被B题智商压制没读这道题 就是构造一个这种图 然后重合部分两个图都填为#就可以了
阅读全文
摘要:题意: 给你长度为n(n<=2000)的一个序列(环),每个位置有一个数值 (1e9) 你可以翻开这个位置,消耗为这个位置上的数值 你也可以循环右移一位(n移到1),比如原先你翻开了1,现在移动完成后你翻开的是2 这个操作消耗为x(1e9) 问你使所有的位置都翻开需要的最小带价是多少? 思路: 一开
阅读全文
摘要:题意: 给定一颗有N个节点的带权树,之后进行M次操作: Q操作:询问树上所有点对之间的距离之和 E操作:修改树上某一条边的权值 思路: 树形dp求出每条边被利用的次数并统计 然后修改的时候就把这个边权修改并将改变值乘上利用次数更改ans /* ****************************
阅读全文