牛客练习赛97

链接:(1条未读通知) 牛客练习赛97_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

 

C.哦~唔西迪西小姐~

description

只走‘1’格子,消耗p的能量将‘0’转成‘1’,最多操作不超过m次。求最大的得分

solution

注意,翻转之后可以不走,p为负数,对贡献排序

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    int n,m;cin>>n>>m;
    vector<ll>a(n+2),b(n+2),p(n+2);
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++)cin>>b[i];
    for(int i=1;i<=n;i++)cin>>p[i];
    ll sum=0,res=0;
    vector<ll>ve;
    for(int i=1;i<=n;i++){
        if(p[i]){
            sum+=max(0ll,a[i]);
            ve.push_back(-max(0ll,a[i])-b[i]);
        }
        else {
            ve.push_back(max(0ll,a[i])-b[i]);
        }
    }
    sort(ve.begin(),ve.end(),greater<>());
    for(int i=0;i<ve.size()&&i<m;i++)sum+=max(0ll,ve[i]);
    res=max(res,sum),sum=0;
    ve.clear();
    for(int i=1;i<=n;i++){
        if(!p[i]){
            sum+=max(0ll,a[i]);
            ve.push_back(-max(0ll,a[i])-b[i]);
        }
        else {
            ve.push_back(max(0ll,a[i])-b[i]);
        }
    }
    sort(ve.begin(),ve.end(),greater<>());
    for(int i=0;i<ve.size()&&i<m;i++)sum+=max(0ll,ve[i]);
    cout<<max(res,sum)<<endl;
}
View Code

 

 

D.月之暗面

description

给出一棵 n 个点的树,有 x 种普通颜色,y 种特殊颜色

现在要给树上的每个节点染色,普通颜色染色没有限制,但两个相邻的节点不能染相同颜色的特殊颜色

求染色方案数,答案对 998244353取模。

solution

如果从子节点影响父节点(一般情况下),那么问题就变得很复杂。

我们可以考虑从父节点去影响子节点,分别两种情况,特殊颜色和普通情况。

到哪父节点再更新。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mod = 998244353;
const int N = 1e6+10;
ll dp[N][5];
vector<int>g[N];
ll n,x,y;
void dfs(int u,int f){
    dp[u][0]=dp[u][1]=1ll;
    for(auto v:g[u]){
        if(v!=f){
             dfs(v,u);
             dp[u][0]=dp[u][0]*(dp[v][0]*x%mod+dp[v][1]*y%mod)%mod;
             dp[u][1]=dp[u][1]*(dp[v][0]*x%mod+dp[v][1]*(y-1)%mod)%mod;
        }
    }
}
int main(){
    cin>>n>>x>>y;
    for(int i=1;i<n;i++){
        int u,v; cin>>u>>v;
        g[u].push_back(v),g[v].push_back(u);
    }
    dfs(1,0);
    cout<<(dp[1][0]*x%mod+dp[1][1]*y%mod)%mod<<endl;
}
View Code

 

2022-03-11 20:08:39

 
 
posted @ 2022-03-11 20:09  issleac  阅读(45)  评论(0)    收藏  举报