关注
代码写得比较丑。。求轻喷 #include <bits/stdc++.h>
using namespace std;
int cap[210];
int rd[210];
vector<int> toporder;
vector<int> G[210];
double tim[210];
double power[210];
bool vis[210];
void dfs(int cur)
{
vis[cur] = true;
tim[cur] = 0.0;
for (auto to : G[cur])
if (!vis[to])
dfs(to);
}
void topsort(int n)
{
toporder.clear();
queue<int> q;
for (int i = 1; i <= n; i++)
if (rd[i] == 0)
q.push(i);
while (!q.empty())
{
int cur = q.front();q.pop();
toporder.push_back(cur);
for (auto to : G[cur])
{
rd[to]--;
if (rd[to] == 0)
q.push(to);
}
}
}
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
int n, m, b, e;
scanf("%d%d%d%d", &n, &m, &b, &e);
for (int i = 1; i <= n; i++)
scanf("%d", cap + i), rd[i] = 0, vis[i] = false, G[i].clear(), tim[i] = -1.0;
int from, to;
for (int i = 0; i < m; i++)
{
scanf("%d%d", &from, &to);
G[from].push_back(to);
rd[to]++;
}
if (e > 0)
{
dfs(b);
topsort(n);
for (int i = 1; i <= n; i++)
{
if (tim[i] == -1.0)
continue;
double l = 0.0, r = 65536.0*65536.0*200.0;
for (int j = 0; j < 50; j++)
{
double mid = (l + r) / 2;
for (int l = 1; l <= n; l++)
power[l] = 0;
power[b] = e * mid;
int k = 0;
while (toporder[k] != i)
{
int cur = toporder[k];
if (power[cur] >= cap[cur])
for (auto to : G[cur])
power[to] += (power[cur] - cap[cur]) / G[cur].size();
k++;
}
if (power[i] >= cap[i])
r = mid;
else
l = mid;
}
tim[i] = (l + r) / 2.0;
}
}
printf("%.4f", tim[1]);
for (int i = 2; i <= n; i++)
printf(" %.4f", tim[i]);
puts("");
}
return 0;
}
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
分享
只会一面挂:这种离谱的部门,不去也罢
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我来点评面试官 #
10311次浏览 78人参与
# 工作后,谈恋爱还和学生时代一样吗? #
39223次浏览 370人参与
# 京东开奖 #
447107次浏览 2500人参与
# 同bg的你秋招战况如何? #
167495次浏览 972人参与
# 职场破冰,你们都聊什么? #
28582次浏览 151人参与
# 今年秋招是回暖还是遇冷 #
20803次浏览 134人参与
# 360集团校招 #
1996次浏览 8人参与
# 阿里云工作体验 #
31724次浏览 108人参与
# 你的领导最像哪种动物,为什么? #
23959次浏览 133人参与
# 我的AI电子员工 #
20867次浏览 151人参与
# 三一集团提前批进度交流 #
40122次浏览 228人参与
# 诺瓦星云求职进展汇总 #
225568次浏览 1732人参与
# 毕业论文进行时 #
1984次浏览 34人参与
# 教师节,你送祝福了吗 #
11417次浏览 76人参与
# 来聊聊你目前的求职进展 #
686364次浏览 6921人参与
# 秋招开始捡漏了吗 #
61890次浏览 427人参与
# 你实习是赚钱了还是亏钱了? #
20267次浏览 183人参与
# 找工作八股要背到什么程度? #
11964次浏览 194人参与
# 用一句话形容你的团队氛围 #
13028次浏览 145人参与
# 上班摸鱼,你都在干些什么? #
29008次浏览 223人参与
# 三一重工求职进展汇总 #
22504次浏览 82人参与
# 你找工作是从容有余 or 匆忙滚爬? #
6988次浏览 72人参与
海康威视公司福利 1170人发布