05 2019 档案
摘要:#include<bits/stdc++.h> using namespace std; const int maxn=1e6+5; const int INF=1e9+5; int n,m,k,w,tot,minn=INF,mark; int f[1005][1005],a[1005],b[101
阅读全文
摘要:题目描述 一个网络中有NNN个节点,由N−1N-1N−1条边连通,每个节点是服务器或者客户端。如果节点u是客户端,就意味着u所连接的所有点中有且仅有一台服务器。求最少要多少台服务器才能满足要求。 输入输出格式 输入格式 输入包含多组测试数据。对于每组数据,第一行是一个整数N(≤10000)N(\le
阅读全文
摘要:2020年,人类在火星上建立了一个庞大的基地群,总共有n个基地。起初为了节约材料,人类只修建了n-1条道路来连接这些基地,并且每两个基地都能够通过 路到达,所以所有的基地形成了一个巨大的树状结构。如果基地A到基地B至少要经过d条道路的话,我们称基地A到基地B的距离为d。 由于火星上非常干燥,经常引发
阅读全文
摘要:有一个长度为n的整数序列,两个游戏者A和B轮流取数,A先取。每次玩家只能从左端或者右端取任意数量的数,但不能两边都取。所有数都被取走视为游戏结束,然后统计每个人取走的数之和,作为各自的得分。两个人采取的策略都是让自己得分尽可能高,并且两个人都很机智,求A得分-B得分后的结果。 输入格式 输入包含多组
阅读全文
摘要:给你两条路径,对于每条路径上的点各不相同,请你求出两条路径最长公共部分的长度。 Input 第一行是数据组数t 每组数据的第一行包含三个数,n,p,q。其中路径上的点的大小不会超过n^2. 第二行包含p+1个数,表示第一条路径 第三行包含q+1个数,表示第二条路径。 Output 输出最长路径长度。
阅读全文
摘要:让我们来玩一个移除石子的游戏。 最初,n个石头按照顺时针的顺序围成一个圈,它们的编号是1,...,n.现在你将会得到两个数字k和m。之后,移除石子m,然后数k个石子移除一个,重复这个操作直到只剩下一个石子为止,求这个最后剩下的石子的编号。(与约瑟夫问题类似) 输入格式: 包含多组数据,以每行3个数的
阅读全文
摘要:有一根长度为L(L<1000)的棍子,还有n(n<50)个切割点的位置(按照从小到大排 列)。你的任务是在这些切割点的位置处把棍子切成n+1部分,使得总切割费用最小。每次 切割的费用等于被切割的木棍长度。 例如,L=10,切割点为2, 4, 7。如果按照2, 4, 7的顺序, 费用为10+8+6=2
阅读全文
摘要:促销活动把一个或多个商品组合起来降价销售,例如: 三朵花的价格是 5z 而不是 6z, 两个花瓶和一朵花的价格是 10z 而不是 12z。 编写一个程序,计算顾客购买一定商品的花费,尽量利用优惠使花费最少。尽管有时候添加其他商品可以获得更少的花费,但是你不能这么做。 对于上面的商品信息,购买三朵花和
阅读全文
摘要:输入两个长度分别是n和m(n,m<=5000)的颜色序列,要求按顺序合并成同一个序列,即每次可以把一个序列开头的颜色放到新序列的尾部。 例如,两个颜色序列GBBY和YRRGB,至少有两种合并结果:GBYBRYRGB和YRRGGBBYB。对于每种颜色来说其跨度L(c)等于最大位置和最小位置之差。例如,
阅读全文
摘要:Bessie喜欢在手机上下游戏玩,然而她蹄子太大,很难在小小的手机屏幕上面操作。 她被她最近玩的一款游戏迷住了,游戏一开始有n个正整数,(2<=n<=262144),范围在1-40。在一步中,贝西可以选相邻的两个相同的数,然后合并成一个比原来的大一的数(例如两个7合并成一个8),目标是使得最大的数最
阅读全文
摘要:细节被坑惨 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e6+5; 4 const int INF=1e9+7; 5 int n,ans,dp[305][305]; 6 template <class t>vo
阅读全文
摘要:够坑 记得开long long 优化:减少一维,将起点固定为1,枚举终点 f(i,j)=max(f(k,j-1)*num(k+1,i)) 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int maxn=1e6+5; 4 const
阅读全文
摘要:f(i,j)=min(f(i-1,k)+f(k+1,j)+ai-1*ak*aj) k表示被抽取的数 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<queue> 6
阅读全文
摘要:f(i,j)=f(i+1,j-1)+2 or max(f(i,k)+f(k+1,j)) 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<vector> 5 #include<queue> 6 #incl
阅读全文
摘要:1.石子归并 非常朴素,顺着推即可 w [ i ] [ j ] 表示把第i堆到第j堆的石子和到一起的最后一步的代价 f [ i ] [ j ] = min{f [ i ] [ k ] + f [ k+1 ] [ j ] + w[ i ] [ j ] | i <= k < j , i <= j} 2.
阅读全文

浙公网安备 33010602011771号