首页 > 其他分享 >Educational Codeforces Round 114 D

Educational Codeforces Round 114 D

时间:2023-01-03 00:33:48浏览次数:59  
标签:10 Educational pq int auto sum Codeforces 114

D. The Strongest Build

tilian
发现n只有10啊 m也是1e5
我们考虑最好的状态肯定就是大家都选最大的时候
但是如果被禁用掉了的话咋办呢
我们肯定贪心的去减少一个最小的地方
但是要是有很多地方减少的一样 那就难办了
但是我们可以直接暴力 因为m只有10 我们每次都会排除一个答案
最坏也就是搞出m个check
我们直接用大根堆 每次bfs更新一下可以去往的状态 以及 他们的权值
最后注意一些剪枝即可 比如已经搞过的状态就可以不搞了
复杂度mlognm

int a[10][N],n,m;
void solve(){
    cin>>n;
    vector<int>ans(n);
    for(int i=0;i<n;i++){
        int x;cin>>x;
        ans[i]=x-1;
        for(int j=0;j<x;j++){
            cin>>a[i][j];
        }
    }
    set<vector<int>>s;
    cin>>m;
    int sum=0;
    for(int i=0;i<m;i++){
        vector<int>v;
        for(int j=0;j<n;j++){
            int x;cin>>x;
            v.push_back(x-1);
        }
        sum+=v.back();
        s.insert(v);
    }
    priority_queue<pair<int,vector<int>>>pq;
    pq.push({sum,ans});
    set<vector<int>>S;
    while(pq.size()){
        auto [w,v]=pq.top();
        pq.pop();
        if(S.count(v))continue;
        else S.insert(v);
        if(!s.count(v)){
            for(auto i:v)cout<<i+1<<' ';
            return;
        }
        for(int i=0;i<n;i++){
            if(!v[i])continue;
            v[i]--;
            pq.push({w-a[i][v[i]+1]+a[i][v[i]],v});
            v[i]++;
        }
    }
}

标签:10,Educational,pq,int,auto,sum,Codeforces,114
From: https://www.cnblogs.com/ycllz/p/17020904.html

相关文章

  • Codeforces 1373 D. Maximum Sum on Even Positions 做题记录(单调队列)
    因为只能转一个子数组,很显然转长度为奇数的子数组,对最大化答案是没有意义的(偶数位的数字之和不会变化)。因此只考虑转偶长度的子数组。转动偶数长度的子数组,相当于......
  • Educational Codeforces Round 9
    EducationalCodeforcesRound9https://codeforces.com/contest/6323/6:ABCA.GrandmaLauraandApples模拟#include<bits/stdc++.h>#defineintlonglongusi......
  • Codeforces Good Bye 2022 CF 1770 F Koxia and Sequence 题解
    题目链接注意题目要求的是所有好序列的所有元素的XOR之和的XOR之和。我一开始以为是所有XOR之和的加法和导致不知道官方题解在讲什么。假设我们枚举一个位置\(1\lei\le......
  • Codeforces Round #781 (Div. 2)C
    CodeforcesRound#781(Div.2)CC我之前没有看懂题目,我现在把我认为正确的题意描述出来有一棵树,一开始都没有病毒什么的,但是我们需要把这一棵树里的所有节点变成有病......
  • Codeforces 1389 B. Array Walk 做题记录(DP)
    (纯种的DP还是做得有点苦痛,调了好久。太菜了。)大概就是第一层枚举返回几次,第二层遍历一遍$1~n$。#include<bits/stdc++.h>usingnamespacestd;constintm......
  • Codeforces Round #812 (Div. 2)
    题目链接A核心思路:其实我们需要挖掘出一个性质,那就是任何一个答案都必然是个长方形。所以我们只需要计算长方形的一个周长就好了。为什么有这样一个性质呢,因为我们发现任......
  • POJ 2114 Boatherds / Luogu P3806 【模板】点分治1
    POJ2114Boatherds/LuoguP3806【模板】点分治1难度:\(\mathtt{?}\)/省选/NOI-标签:点分治\(\mathtt{blog}\)\(n\)个点的树,边\((u_i,v_i)\)有边权\(w_i\),\(m\)......
  • Codeforces Round 789 div2 A-E题解 & 处理手法思考
    A.TokitsukazeandAllZeroSequence这题给一个数列,每次操作对于两个不相同的数字可以吧大的变成min,两个相同的话一个变为0问最少操作多少次能将整个数组变为0首......
  • Codeforces 22 B. Bargaining Table 做题记录
    其实是比较基础的模拟($n<=25$),写个$O(n^4)$的暴力就过了。感觉可以用倍增优化一下,可以但没必要。……太菜了还挂了几发。反思一下,一个是写函数改来改去int类型没返......
  • C. Koxia and Number Theory (线性同余)https://codeforces.com/contest/1770/problem/C
    https://codeforces.com/contest/1770/attachments/download/18470/editorial.pdf这个pdf都写得很明白了,这个c题终于懂了,麻了à$a_i^j\leqb^j$本来只需要枚举n/2之内的......