解题:NOI 2007 社交网络】的更多相关文章

题面 先跑一边Floyd乘法原理统计任意两点间最短路数目,然后再枚举一次按照题意即可求出答案,会写那道JSOI2007就会这个 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; long long n,m,t1,t2,t3; long long mat[N][N],cnt[N][N]; double ans[N]; int main () { scanf("…
Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系.我们将这个关系网络对应到一个n个结点的无向图上,两个不同的人若互相认识,则在他们对应的结点之间连接一条无向边,并附上一个正数权值c,c越小,表示两个人之间的关系越密切.我们可以用对应结点之间的最短路长度来衡量两个人s和t之间的关系密切程度,注意到最短路径上的其他结点为s和t的联系提供了某种便利,即这些结点对于…
[题目链接] 点击打开链接 [算法] 首先,跑floyd,计算最短路和最短路径数 然后,计算答案,枚举k,s,t,若dist[s][k] + dist[k][t] = dist[s][t], 那么,点对(s,t)对答案k的”贡献“就是c[s][k]*c[k][t]/c[s][t] [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 110 const int INF = 1e9; int i,j,n,m,u,v,w; d…
http://www.lydsy.com/JudgeOnline/problem.php?id=1494 这道题..因为k很小,而且我们只关心连续的k个节点的连通性,所以把连续的k个点轮廓线上的连通性的最小表示当做状态来转移. 转移可以构造一个矩阵,构造矩阵不难想,但挺麻烦的... 时间复杂度\(O(Mlen2^kk^2+Mlen^3logn)\),Mlen最坏情况下为52. #include<cstdio> #include<cstring> #include<algori…
这是道CDQ分治的例题: $O(n^2)$的DP: f [1]←S* Rate[1] / (A[1] * Rate[1] + B[1]) Ans←SFor i ← 2 to n For j ←1 to i-1 x ← f [j] * A[i] + f [j] / Rate[j] * B[i] If x> Ans Then Ans ← x End For f [i] ← Ans* Rate[i] / (A[i] * Rate[i] + B[i])End ForPrint(Ans) 决策i是通过1-…
这道题就是深搜矩阵,再快速幂. #include <iostream> #include <cstring> #include <cstdio> #include <map> using namespace std; ; ; struct Matrix{ long long mat[maxn][maxn]; int r,c; Matrix(,,){ memset(mat,,sizeof(mat)); r=r_;c=c_; ;i<=r;i++)mat[i…
Description 题库链接 (按我的语文水平完全无 fa♂ 概括题意,找了 hahalidaxin 的题意简述... 有 \(AB\) 两种货币,每天可以可以付 \(IP_i\) 元,买到 \(A\) 券和 \(B\) 券,且 \(A:B=Rate_i\) ,也可以卖掉 \(OP_i\%\) 的 \(A\) 券和 \(B\) 券,每天 \(AB\) 价值为 \(A_i\) 和 \(B_i\) . 开始有 \(S\) 元, \(n\) 天后手中不能有 \(AB\) 券,给出 \(A_i,B_…
Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下 简称B券).每个持有金券的顾客都有一个自己的帐户.金券的数目可以是一个实数.每天随着市场的起伏波动, 两种金券都有自己当时的价值,即每一单位金券当天可以兑换的人民币数目.我们记录第 K 天中 A券 和 B券 的 价值分别为 AK 和 BK(元/单位金券).为了方便顾客,金券交易所提供了一种非常方便的交易方式:比例交易法 .比例交易法分为两个方面:(a)卖出金券:顾客提…
题面 拆点跑最大流 所有能跑出去的点连向汇点,容量为inf 原点连向所有初始有蜥蜴的点,容量为1 每根柱子拆成两个点“入口”和“出口”,入口向出口连容量为高度的边,出口向别的有高度的柱子的入口连容量为高度的边 #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ,M=,inf=1e9; int n,m,d,f,b,s,t,t1,…
1.        资源问题1-----机器分配问题F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2.        资源问题2------01背包问题F[I,j]:=max(f[i-1,j-v]+w,f[i-1,j]); 3.        线性动态规划1-----朴素最长非降子序列F:=max{f[j]+1} 4.        剖分问题1-----石子合并F[i,j]:=min(f[i,k]+f[k+1,j]+sum[i,j]); 5.        剖分问题2-----多…