CF 332 C 贪心

【信息科学与工程学】【运营科学】第二篇 C4信息与通信网络运营 (C4) ——数据中心网络运营06 13 | 司法诉讼 | 原告律师 | 争取和解优势 | 证据披露的序贯博弈 | 策略性证据释放 | 持有证据集E = {强证据e_s, 中证据e_m, 弱证据e_w}。设公众原有认知人格向量为 Pold​​=(p1​,p2​,...,pk​), 其中p_i为负面特质(如“不敬业”)。危机后, 通过行为序列 {At​}和宣传, 将公众认知向新向量 Pnew​​引导, 使得在关键维度上, Pnew​​与 Pold​​的余弦相似度降低, 并与一个正面的、可接受的“原型”(如“浪子回头”、“慈父”)对齐。 阅读详情
题目链接:http://codeforces.com/problemset/problem/332/C


参考  链接: http://blog.youkuaiyun.com/cc_again/article/details/9471465


题目意思:


有n个命令,要通过p个,某主席要在通过的p个中选择k个接受。


每个任务有两个值ai,bi, ai表示如果该主席接受该命令,她的头发变灰的数量,bi表示如果该主席不接受该命令时,议员不高兴值。


对于通过的p个命令,该主席要使议员的不高兴值和最小,在相同的情况下,要使自己的头发变灰的数量尽可能的少。


让你求出通过哪p个命令,使得该主席的头发变灰的数量最多,在相同的情况下,输出使议员不高兴最大的选择。



解题思路:

                    非常关键的一点是主席的想法和我们不同,我们先选出主席一定不会通过的p-k条命令来,那么这p-k条命令必须

unhappy最小,然后那k条必须选的选择num(白头发数量)最多的,这样头发多的选出来了,再更新那不选的p-k条,大致思路

说完了,看代码吧:




/*
题目意思:

有n个命令,要通过p个,某主席要在通过的p个中选择k个接受。

每个任务有两个值ai,bi, ai表示如果该主席接受该命令,她的头发变灰的数量,bi表示如果该主席不接受该命令时,议员不高兴值。

对于通过的p个命令,该主席要使议员的不高兴值和最小,在相同的情况下,要使自己的头发变灰的数量尽可能的少。

让你求出通过哪p个命令,使得该主席的头发变灰的数量最多,在相同的情况下,输出使议员不高兴最大的选择。

*/


//   好难的贪心

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

#define N 101000

struct stud{
int num,unhappy;
int pos,pp;
}f[N],s[N];

int n,p,k,vis[N];
int ans[N];

int cmp1(stud a,stud b)  //按照主席的习惯,先选不高兴多,然后掉头发也少的
{
    if(a.unhappy==b.unhappy)
        return a.num<b.num;

    return a.unhappy>b.unhappy;
}

int cmp2(stud a,stud b)  //按照我们意愿,选头发掉的多,为什么unhappy大的在前面呢,请看cmp1,unhappy大的在前面,
                          //我们找到前面的unhappy最小的越大,后面掉头发的unhappy的选择越大,
{
     if(a.num==b.num)
       return a.unhappy>b.unhappy;

    return a.num>b.num;
}

int main()
{
    int i;
    while(~scanf("%d%d%d",&n,&p,&k))
    {

       for(i=1;i<=n;i++)
       {
           scanf("%d%d",&f[i].num,&f[i].unhappy);
           f[i].pos=i;
       }

       sort(f+1,f+n+1,cmp1);//按不高兴减序,白头发增序

       memcpy(s,f,sizeof(f));  //请记住,一定要开另一个结构体,不要像我下面的一样,因为cmp2排序后再cmp1可能不是这个序列了

       for(i=1;i<=n;i++)
        f[i].pp=i;

       sort(f+1,f+n-(p-k)+1,cmp2);  //留下最少逼迫主席选前面num大的p-k个(暂时逼迫主席的,后面会更新)

        int j=1;

        for(i=1;i<=k;i++)
        {
            j=max(j,f[i].pp);

            if(i==1)
                printf("%d",f[i].pos);
            else
                printf(" %d",f[i].pos);
        }

        sort(s+j+1,s+n+1,cmp1);

        for(i=j+1;i<=j+p-k;i++)
            printf(" %d",s[i].pos);

        printf("\n");
    }
    return 0;
}


//附上一份让我自己写的吐血的错误代码
   
   //就是没有开两个数组,wa到死

/*

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 100005

struct stud{
int hair,anger;
int pos,pp;
}f[N];


int n,p,k;

int cmp1(stud a,stud b)
{
    if(a.anger==b.anger)
        return a.hair<b.hair;

    return a.anger>b.anger;
}

int cmp2(stud a,stud b)
{
      if(a.hair==b.hair)
            return a.anger>b.anger;

      return a.hair>b.hair;
}

int main()
{
    int n,i;
    while(~scanf("%d%d%d",&n,&p,&k))
    {
        for(i=1;i<=n;i++)
        {
            scanf("%d%d",&f[i].hair,&f[i].anger);
            f[i].pos=i;
        }

        sort(f+1,f+n+1,cmp1);

        for(i=1;i<=n;i++)
            f[i].pp=i;

        sort(f+1,f+n+1-(p-k),cmp2);

        int j=1;

        for(i=1;i<=k;i++)
           {
            if(i==1)
               printf("%d",f[i].pos);
            else
               printf(" %d",f[i].pos);

            j=max(j,f[i].pp);
           }


         sort(f+1,f+n+1,cmp1);

         sort(f+j+1,f+n+1,cmp1);

         for(i=j+1;i<=j+p-k;i++)
            printf(" %d",f[i].pos);

         printf("\n");
    }

    return 0;
}


*/




【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 01 算法设计 阅读详情

相关推荐

【管理科学】第三十五篇 企业经营中的管理科学01 权力、风险、运营、物流、人力资源、库存、合同、品牌、业绩、项目

编号类型领域子领域/内容问题问题的数学分析(电磁/信息论/数学物理/数学化学/界面科学/表面科学 + 几何/拓扑/代数/集合论/图论/数论/函数评估/数值估计/概率/统计/向量/张量/矩阵/矢量 + 其他)算法逐步推理思考的数学表达式及实现步骤及时序流程 参数列表及参数的数值范围及数值分析及常量/常数1管理科学问题运营管理生产计划如何分配有限资源生产多种产品以最大化利润?线性代数、凸优化、单纯形法;向量与矩阵目标函数 max c^T x,约束 Ax ≤ b, x ≥ 0。步骤:①标准化引入松弛变量;②构建初

weixin_49199313的博客 247

题解 [CF332C] Students' Revenge

题面 解析 辣鸡题面毁我青春 因为翻译的题面中写了一句\(剩下的n−k个不会完成\). 所以就以为剩下的\(n-k\)个都会算上不满意值. (然而事实是只有\(p-k\)个...) 首先根据主席的规则,我们可以先钦定\(p-k\)个绝对不会被选的任务, 把\(b\)从大到小,再把\(a\)从小到大取最后面就行了. (应该很容易理解吧...) 然后再把剩下的按\(a\)从大到小, 再把\(...

weixin_30911809的博客 202

【信息科学与工程学】【数据科学】数据科学领域-第三篇 数学基础04 集合论02

编号类型概念类别概念名称数学定义/描述数学表示性质特征重要特例相关理论问题的数学分析参数列表及参数数值范围关联知识1基础集合论本体集合若干确定的、互不相同的对象的总体A,B,…确定性、互异性、无序性∅,N,RZFC 公理系元素归属判定 x∈A势 ∥A∥∈{finite}∪[ℵ0​,+∞)朴素集合论→公理化2基础集合运算并/交/差/补按逻辑联结词定义的集合操作A∪B,A∩B,A∖B交换律、结合律、分配律、De MorganA∪∅=A布尔代数多集合推广 ⋃i∈I​Ai​I为指标集,可数/不可数测度论3基础构造幂

weixin_49199313的博客 369

贪心 CF 332 C 好题 赞

题目链接: http://codeforces.com/problemset/problem/332/C 题目意思: 有n个命令,要通过p个,某主席要在通过的p个中选择k个接受。 每个任务有两个值ai,bi, ai表示如果该主席接受该命令,她的头发变灰的数量,bi表示如果该主席不接受该命令时,议员不高兴值。 对于通过的p个命令,该主席要使议员的不高兴值和最小,在相同的情况下,要使自己

cc_again的专栏 1478

【信息科学与工程学】【通信工程】 第一百四十四篇 城域云网中的数学分析02

全面覆盖了文档中提到的所有业务场景(L1~L5体验、游戏加速、医疗、工业互联网、卫星、智慧城市、车联网、全息通信、云游戏、5G LAN、智慧医疗、工业TSN等)以及所有技术细节(基站、OTN、IP网络设备、城域网拓扑、FlexE、SRv6 Policy、BIER6、APN6、MEC、内生安全、数字孪生、意图驱动、AIOps、零信任、SD-WAN等),每一题都体现了多要素(基站、OTN、IP、拓扑、业务、配置、调度、优化)的联合优化。问题:在 WIFI6 空口和城域网中为直播业务分配资源,保障上行带宽。

weixin_49199313的博客 468

【信息科学与工程学】计算机科学与自动化——第三十五篇 调度理论和调度算法01——资源调度算法

算法逻辑

weixin_49199313的博客 682

CF332C Students' Revenge

洛谷 CF 分析 假设我们选出了 \(p\) 个任务,那么主席一定会将其按照: \(x.b>y.b\) , \(x.a<y.a\) 的排序方式将其排序,然后选择前 \(k\) 个任务完成。所以我们先按照这种方式排序,后 \(p-k\) 个是一定不会被主席选中的,可以将其打上标记。 我们的目的是让这 \(k\) 个任务的 \(suma\) 最大,另外 \(p-k\) 个任务的...

weixin_30652897的博客 308

【信息科学与工程学】计算机科学与自动化—第十五篇 云计算 11 算法篇02

但若第一个应用需求40GB/s,第二个10GB/s,总需求50GB/s>40GB/s,第一个得32GB/s,第二个得8GB/s,不公平。但若分区负载不均(分区1-2各有100任务/s,分区3-4各有50任务/s),A负责1-2(200/s),B负责3-4(100/s),仍均衡。任务 τi​ 的计算需求 Wi​(CPU周期),在频率 f 下执行时间 Ti​=Wi​/f,能耗 Ei​=Pdyn​⋅Ti​=Ceff​⋅V2⋅f⋅(Wi​/f)=Ceff​⋅V2⋅Wi​。若 Mneed​>Mi​,需使用远程显存。

weixin_49199313的博客 106

CodeForces 332C Students' Revenge

题目 题意 给出n对数对(a,b),A从其中选出p个数对,B再从中A给他的数对中挑出k个数对,B的方案为:首先满足k个数对的b之和最大,如果有多组方案,再考虑a之和最小。现在问A应该从中选出哪p个数对,使得在B的方案下得到的a之和最大,若有多组方案,再考虑b之和最大 题解 很容易想到贪心,但是题目的限制条件很多,所以坑也多,很容易满足一个条件又不满足另一个了。 1)在B的方案下,B首先会

Tri_integral的专栏 1564

【信息科学与工程学】【制造工程】第六十二篇 芯片封装01

①有效热导率:k_eff = k_matrix[(1+2φ(β-1)/(β+2))/(1-φ(β-1)/(β+2))],β=k_filler/k_matrix;:①热导率:k_parallel = V_f·k_f + (1-V_f)·k_m,k_perp = k_m·k_f/(V_f·k_m + (1-V_f)·k_f);②热导率:k_eff = k_m[(k_f+2k_m+2φ(k_f-k_m))/(k_f+2k_m-φ(k_f-k_m))];

weixin_49199313的博客 363

【信息科学与工程学】【物理/化学科学和工程技术】第八篇 光学02

编号类型光学领域子领域核心数学方程式/算法模型逐步推理思考的数学方程式及数字/数值参数列表时序数学方程式和时序周期变化和稳态/非稳态关联知识加工工具/机床/装备及厂商及加工工艺及各类时序流程和各类注意事项261光学基础物理光学多光束干涉​法布里-珀罗干涉仪透射率: T = T_max / (1 + F sin²(δ/2)) 其中 T_max = (1 - R)² / (1 - R)², F = 4R/(1-R)² 为精细度系数,δ = (4π/λ) n d cosθ 为相邻光束相位差。1. 推导

weixin_49199313的博客 445

远程桌面报错oracle,【windows】远程桌面报错:由于CredSSP加密Oracle修正

ABP的工作单元http://www.aspnetboilerplate.com/Pages/Documents/Unit-Of-Work 工作单元位于领域层. ABP的数据库连接和事务处理: 1,仓储类 ASP ...键盘unicode值对照表A:65 B:66 C:67 D:68 E:69 F:70 G:71 H:72 I:73 J:74 K:75 L:76 M:77 N:78 O:79 ...

weixin_29557763的博客 190

【信息科学与工程学】【物理/化学科学和工程技术】知识体系87——声学基础02 应用声学

编号类型领域问题问题的数学分析参数列表及常量/常数及参数的数值范围关联知识1技术应用应用声学如何利用超声波反射测量距离?设发射脉冲与接收回波的时间差为 Δt,声速为 c,则目标距离 d = c·Δt / 2。c ≈ 340 m/s (空气中,20°C);Δt 通常为 0.1 ms ~ 100 ms;d 对应范围约 0.017 m ~ 17 m。声波传播、反射定律、压电换能器、时延估计2现象分析应用声学为什么在音乐厅中某些位置听到的声音更清晰?声压级叠加:总声压级 Lp = 10 log₁₀(Σ 10^(Lp

weixin_49199313的博客 217

常用算法代码模板与题单 | A - 基础算法(更新于2026.10.7)

这篇文档其实是我自己学习路上的一份“复习笔记”。之前看了不少教程,零零散散记了一堆代码片段和小技巧,时间久了就容易忘,翻起来也麻烦。所以干脆花时间整理了一下,把常用的模板、容易踩的坑、还有一些个人觉得挺实用的小技巧都归到了一起。 如果你也在学类似的东西,或许能帮你省下一些翻找的时间;如果有哪里写得不清楚或不对,也欢迎随时指正交流。 希望这份整理也能对你有一点点帮助~ ✨

团爸讲算法 803

Vue3+uniapp开发必备:5分钟搞定unplugin-auto-import自动导入配置(附常见报错解决)

本文详细介绍了在Vue3+uniapp项目中配置unplugin-auto-import插件实现自动导入的方法。通过该配置,开发者无需手动导入ref、onLoad等常用API,可显著提升编码效率和团队协作规范性。文章提供了从安装、TypeScript集成到高级用法的完整指南,并附带了常见报错的解决方案。

weixin_29008805的博客 958

【电驱动】永磁同步电机工作原理及分类

永磁同步电机工作原理及分类

星Yeah 的博客 7323

codeforces #378 Div2 ABCD题解

codeforces 733 ABCD #378题解 cf div2 上分秘诀

ACdream 758

TSMaster实战:如何用LIN总线唤醒你的汽车电子系统(附波形分析)

本文通过TSMaster工具实战解析LIN总线唤醒机制。详细介绍了LIN网络唤醒的协议要求、时序参数计算,并演示了如何在TSMaster中配置唤醒信号、捕获分析波形,以及验证休眠流程。文章结合常见问题排查,为汽车电子工程师提供了从理论到实践的完整调试指南。

weixin_28308325的博客 459

POJ 2970 The lazy programmer(优先队列+贪心)

Language: Default The lazy programmer Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 1566   Accepted: 386 Description A new web-design studio, called 

左眼皮跳跳 1389

Matlab蒙特卡洛模拟二维伊辛模型相变过程

一、什么是伊辛模型 伊辛(Ising)模型是描述磁系统相变最简单的模型,但模型里自旋之间的相互作用赋予了它奇妙的特性,最有趣的就是对称性破缺。这一模型可以被推广用于研究连续的量子相变、基本粒子超弦理论、动力学临界行为等,甚至被认为可以描述深林火灾、交通拥堵、舆论传播等社会经济现象。 如图,每个格点的方向只有向上或向下两者状态,但临近的自旋之间有相互作用,而且点阵可以是一维、二维、三维、甚至更高维...

http://www.icfgblog.com/ 2万+

Hypermesh2021实战:塑料圆盘结构化网格划分全流程(附避坑指南)

本文详细介绍了使用Hypermesh2021进行塑料圆盘结构化网格划分的全流程操作,包括几何预处理、网格生成策略及质量验证。特别针对工程实践中常见的12个典型问题提供解决方案,帮助用户提升CAE仿真分析的精度和效率。

weixin_29294597的博客 318

HDU 1338 Game Prediction 贪心

HDU 1338 Game Prediction 贪心

左眼皮跳跳 1138

C#从入门到精通(35)—如何防止winform程序因为误操作被关闭

我们在开发的上位机软件运行起来以后,一般在右上角都有一个关闭按钮,正常情况下点击关闭按钮就能关闭软件,但是不排除我们不想关闭软件,但是因为不小心把鼠标点到了关闭按钮,如果这是一个正在生产的机器,突然关闭软件可能会导致产品损坏,那么我们如何去解决这个误操作的问题呢,本文就来讲解解决方案!

qq_34059233的博客 676
上一篇: HDU 1338 Game Prediction 贪心
下一篇: POJ 1840 数学
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值