首页 > 其他分享 >AT_abc286e 题解

AT_abc286e 题解

时间:2023-01-21 22:55:08浏览次数:40  
标签:int 题解 second maxn abc286e pair New dp

首先观察到 \(n \leq 300\) 加上全源“最短路”便可以自然而然的想到 floyd

注意到 floyd 算法的可行性只依赖统计的东西具有优先级

这里我们定义优先级为最短路最短且价值和最高。也就是在最短路相同的情况下比较价值和。

然后跑一遍 floyd 板子即可,复杂度 \(O(n^3)\)。

#include<bits/stdc++.h>
#define int long long
#define inf 1e18
using namespace std;
const int maxn =301;
pair<int,int> dp[maxn][maxn];
int a[maxn];
int n;
signed main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++)
    for(int j=1;j<=n;j++)
    {
        char c;
        cin>>c;
        dp[i][j]=make_pair(c=='Y'?1:inf,c=='Y'?a[i]+a[j]:0);
        if(i==j) dp[i][j]=make_pair(0,a[i]);
    }
for(int k=1;k<=n;k++)
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            if(i!=j&&i!=k&&j!=k)
            {
                pair<int,int> New=make_pair(dp[i][k].first+dp[k][j].first,dp[i][k].second+dp[k][j].second-a[k]);
                if(New.first<dp[i][j].first||(New.first==dp[i][j].first&&New.second>dp[i][j].second))
                    dp[i][j]=New;
            }

int t;
cin>>t;
while(t--)
{
    int u,v;
    cin>>u>>v;
    if(dp[u][v].first!=inf) cout<<dp[u][v].first<<' '<<dp[u][v].second<<'\n';
    else cout<<"Impossible\n";
}
}

标签:int,题解,second,maxn,abc286e,pair,New,dp
From: https://www.cnblogs.com/chifan-duck/p/17064080.html

相关文章

  • ABC286 A-E题解
    题目虽然是大年三十,但是玩手机没写题有意思。从50分钟才开始看题。A题意:将数组中\([p,q]\)与\([r,s]\)的元素交换并输出。sbt。B大意:将字符中的na换成nya。......
  • AcWing 第87场周赛题解
    T1移动棋子算出为\(1\)的点离\((3,3)\)的距离即可。#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;intmain(){int......
  • LeetCode.面试题02.05-链表求和-题解分析
    题目来源面试题02.05.链表求和题目详情给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并......
  • Codeforces Round48 Edu题解
    A-DeathNote(模拟)题意​ 现在有一本书,每页可以写下\(m\)个数字,给你一个序列\(a\),依次在书上誊写\(a_i\)个数字,请问誊写序列的第\(i\)个数的时候书翻了几页?​ ......
  • HGAME 2023 Week2 Pwn YukkuriSay题解
    HGAME2023Week2PwnYukkuriSay题解检查保护:拿到文件先checksec一下:64位程序,开启canary和nx保护,没有开启PIE(可以使用绝对地址了)继续往下看,先不着急打开ida,我们先运......
  • GoodBye Renyin ABC题解
    GoodByeRenyinABC题解A答案为\(\text{YES}\)的充要条件是\(\max(a_i)\timesr\le(\suma_i-\max(a_i))\timesR\)。必要性显然。充分性是可以先把最大的放在\((......
  • 博客园美化及markdown代码问题解决
    博客园美化Cnblogs-Theme-SimpleMemory代码出处GitHub-BNDong/Cnblogs-Theme-SimpleMemoryatv1.2.6说明文档:简介-Document(bndong.github.io)如果无法进入网站,......
  • Deque 题解
    题目传送门一道区间\(dp\)题。在\(dp\)之前,我们需要明确以下几个东西:状态的表示,状态转移方程,边界条件跟答案的表示。状态的表示定义\(sum(l,r)=\sum_{i=l}^ra_......
  • 1538 迎春舞会之数字舞蹈 题解
    #include<iostream>intmain(){/**#Seven-segmentDisplay**Thewayhowtheprogramprintsdecimalnumericstotheconsoleworks......
  • CF225 Round #139 题解
    比赛链接:https://codeforces.com/contest/225题解:A题意题//bySkyRainWind#include<bits/stdc++.h>#definemprmake_pair#definedebug()cerr<<"Yoshino\n"#de......