水题系列一:Circle】的更多相关文章

水题系列 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述     给你一个有向图,每条边都有一定的权值,现在让你从图中的任意一点出发,每次走的边的权值必须必上一次的权值大的情况下,问你最多能走几条边?   输入 首先一个n和m,分别表示点的数目和边的数目接下来m行,每行三个值x,y,val,表示x到y有路,其权值为val.(1<n,m,val<10^5,0<x,y<=n) 输出 输出最多有的边的数目 样例输入 3 3 1 2 1 2 3 1 3 1…
问题描述:Circle 小明在玩游戏,他正在玩一个套圈圈的游戏.他手里有 L 种固定半径的圆圈,每一种圆 圈都有其固定的数量.他要把这些圆圈套进 N 个圆形槽中的一个.这些圆形槽都有一个最 小半径和最大半径,他要套进去的圆圈半径必须在圈槽的最小半径和最大半径之间(含). 圆形槽如图所示,绿色部分表示可以放圈圈.这 N 个圆形槽的最小半径和最大半径都不一 样.求最多可以放进去多少个圆圈.每一个圆形槽最多放一个圆圈. 数据输入 第 1 行是两个数 N 和 L.(1<=N,L<=2500) 第 2…
题目 大意: 缩点后转为求最长链的长度和最长链的个数 思路: 看懂题就会做系列 长度和个数都可以拓扑排序后DP求得 毕竟是2007年的题 代码: 如下 #include <cstdio> #include <iostream> #include <memory.h> #define r(x) x=read() #define MAXX 100005 #define MIN(a,b) (a<b?a:b) #define MAX(a,b) (a>b?a:b) #…
1203 判断浮点数是否相等 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题目描述 Description 给出两个浮点数,请你判断这两个浮点数是否相等 输入描述 Input Description 输入仅一行,包含两个浮点数 输出描述 Output Description 输出仅一行,如果相等则输出yes,否则输出no. 样例输入 Sample Input 2.980000001 2.9800000000001 样例输出 Sample Output y…
题目: 现在我们的手头有N个软件,对于一个软件i,它要占用Wi​的磁盘空间,它的价值为Vi​.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi​的和最大). 但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直接或间接依赖)的情况下才能正确工作(软件i依赖软件j).幸运的是,一个软件最多依赖另外一个软件.如果一个软件不能正常工作,那么它能够发挥的作用为0. 我们现在知道了软件之间的依赖关系:软件i依赖软件Di​.现在请你设计…
题目: 链接 大意: 盒子与盒子之间的关系构成一个有向图 求图上包含节点数最多的路径的节点数 思路: 有向图上求包含节点数最多的路径的节点数 可直接使用tarjan缩点后拓扑dp求得 在此不赘述 此题重点是如何判定盒子与盒子之间的关系 首先我们要有一个共识 盒子的起点一致 一个盒子包含另一个盒子相当于它可以走另一个盒子到不了的路 换句话说 一个盒子不是另一个盒子的下属当且仅当它能够到另外一个盒子走不到的地方 而与此同时此题的数据范围非常的小 所以我们可以有一点大胆的想法 判定两只笔谁真谁伪 我们…
题目:http://poj.org/problem?id=3006 筛选法求素数 #include <iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<stack> #include<queue> #include<cmath> #include<algorithm> using namespace std; ];//…
问题描述: Phonenumbers 企业喜欢用容易被记住的电话号码.让电话号码容易被记住的一个办法是将它写成一 个容易记 住的 单词或 者短语 .例如 ,你 需要给 滑铁卢 大学打 电话时 ,可 以拨打 TUT-GLOP.有时,只将电话号码中部分数字拼写成单词.当你晚上回到酒店,可以通过 拨打 310-GINO 来向 Gino's 订一份 pizza.让电话号码容易被记住的另一个办法是以一种好 记的方式对号码的数字进行分组.通过拨打必胜客的“三个十”号码 3-10-10-10,你可以 从他们那…
41Acode 好像只要前一个字符串存在下一个字符串的头单词就YES: #include <bits/stdc++.h> using namespace std; typedef __int64 LL; const int N=1e2+10; int main() { int len,i,j; char s1[N],s2[N]; scanf("%s%s",s1,s2); len=strlen(s1); for(i=0,j=len-1;i<len;i++,j--) {…
题目 大意: 边权为1 使遍历树时到每个节点的时间加上点权的最大值最小 求这个最小的最大值 思路: 最优化问题 一眼树形DP 考虑状态设立 先直接以答案为状态 dp[u] 为遍历完以u为根的子树的答案 再考虑状态转移 dp[u]=MAX(dp[to]+1,siz+dp[to]);siz为枚举子树到以to为节点的子树时之前已遍历的总时间 很明显这个转移过来的dp值的最优化依赖于子树遍历的顺序 所以我们需要找到一种最优的子树遍历顺序来使每个子树得到最优的dp值来更新 我们通过观察可以发现 交换任意两…