北大ACM(POJ1015-Jury Compromise)

Question:http://poj.org/problem?id=1015
问题点:DP。
 1 Memory: 1352K        Time: 94MS
 2 Language: C++        Result: Accepted
 3 
 4 #include <iostream>
 5 #include <vector>
 6 using namespace std;
 7 #define MAX_JURY 201
 8 #define MAX_CHOICE 21  //人员编号从1开始
 9 int dp[21][840];//21是人  840是辩控差   值是辩控和
10 vector<int> path[21][840];//值是最后一条路径
11 struct jury{
12     int minus;//辩控差
13     int sum;//辩控和
14 };
15 int main()
16 {
17     int total,choice,zero;
18     jury pool[MAX_JURY];
19     int eg = 1;
20     while(cin>>total>>choice && (total>0 && choice>0))
21     {
22         zero = 20*choice;//实际零点值
23         memset(pool,0,total);
24         for(int i=1,pi,di;i<=total;i++)
25         {
26             cin>>pi>>di;
27             pool[i].minus = di - pi;
28             pool[i].sum = di + pi;
29         }
30         memset(dp,-1,sizeof(dp));
31         for(int i=0;i<21;i++)
32             for(int j=0;j<840;j++)
33                 path[i][j].clear();
34 
35         dp[0][zero] = 0;
36         for(int k=1;k<=total;k++)
37         {
38             for(int i=choice;i>0;i--)//更新路径先长后短,避免交叉覆盖
39             {
40                 for(int j=0;j<=2*zero;j++)
41                 {
42                     if(dp[i-1][j]>=0)
43                     {
44                         if(dp[i][j+pool[k].minus] < dp[i-1][j] + pool[k].sum)
45                         {
46                             dp[i][j+pool[k].minus] = dp[i-1][j] + pool[k].sum;
47                             path[i][j+pool[k].minus] = path[i-1][j];
48                             path[i][j+pool[k].minus].push_back(k);
49                         }
50                     }
51                 }
52             }
53         }
54         int idx;
55         for(idx=0;dp[choice][zero-idx]==-1 && dp[choice][zero+idx]==-1;idx++);
56         int v = dp[choice][zero-idx]>dp[choice][zero+idx]?-idx:idx;
57         idx = zero + v;
58         cout << "Jury #" << eg++ <<endl;
59         cout << "Best jury has value "<<(dp[choice][idx]-v)/2<<" for prosecution and value "<<(dp[choice][idx]+v)/2<<" for defence:"<<endl;
60 
61         for(int l=0;l<choice;l++)
62         {
63             cout << " "<< path[choice][idx][l] ;
64         }
65         cout<<endl;
66     }
67   return 0;
68 }

 

转载于:https://www.cnblogs.com/TYcnblogs/p/poj1015.html

linux 内核vxlan收发包流程 1.vxlan口收包处理流程 前面几章详细介绍了vxlan接口的使用,而且已经知道vxlan是 MAC IN UDP中的封装,因此,在解封装之前,一切按照原有流程走,在此复习一下内核收发包流程(驱动层的数据处理这次不再解析,直接从__netif_receive_skb_core开始) #物理网卡处理中断,触发softirq i40e_intr └─napi_schedule_irqoff #i40e softirq把包放到per cpu backlog,触发softirq i40e_napi_p 阅读详情

相关推荐

SPH vs Lagrange网格混合建模实战:用LS-DYNA模拟弹丸穿孔效应

本文深入探讨了在LS-DYNA中运用SPH与Lagrange网格混合建模技术,高效模拟超高速碰撞下弹丸穿孔效应的实战方法。通过分析模型分区策略、耦合界面处理及关键参数设置,解决了传统方法在模拟大变形、材料断裂时的网格畸变或计算成本高昂问题,为相关工程仿真提供了兼顾精度与效率的解决方案。

weixin_29211309的博客 109

POJ 1015 (巨难的DP)

题目:poj1015 中文描述 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团。选m人的办法是: 控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0到20。为了公平起见,法官选出陪审团的原则是:选出的m个人,必须满足辩方总分和控方总分的差的绝对值最小。如果有多种选择方案的辩方总分和控方总分的之差的绝对值相同,那么选辩控双方总分之和最大的方案即可。 输入 输入包含多组数据。每组数据的第一行是

CHAI_NIAOJINJE的博客 680

Cadence SIP Layout 简单教程-第一章

以摄像头模组软硬结合板为例,描述layout的整个完整过程,从而掌握基本技能。 第一章 准备工作 第一节 原理图不用说layout前需要绘制原理图,原理图不在本文讨论范围内,所以列为准备工作。 需要特别说明的是,绘制原理的最终目的是导出网络表,网络表中的重要参数footprint是让layout软件选择正确封装的关键,所以这里讲解一下原理图设置footprint的位置。在原理图中双击零件,...

whp1920的博客 1万+

POJ1015-Jury Compromise

全解题报告索引目录 -> 【北大ACM – POJ试题分类】 转载请注明出处:http://exp-blog.com ------------------------------------------------------------------------- 大致题意: 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n...

ζёСяêτ - 小優YoU 1万+

Zemax操作33--5倍激光扩束器

5倍扩束

lzy750750的博客 2933

保姆级教程:在RK3576上配置USB网卡从零到外网访问(附udev规则详解)

本文提供了在RK3576开发板上配置USB网卡的完整教程,涵盖从内核驱动、udev规则到网络路由的全流程。重点讲解了如何利用USB Gadget功能实现高速网络连接,并构建稳定的算力集群,确保多设备间通信及外网访问。

grass的博客 460

深挖C++:类和对象(中)

(先进后出)

xys_678的博客 249

吐血总结《Mysql从入门到入魔》,图文并茂

文章目录1. 查询1.1 查询多列1.2 检索唯一值1.3 限制输出1.4 注释2. ORDER BY 排序2.1 单列排序3.2 多列排序3.3 指定排序方向4. WHERE 过滤数据4.1 WHERE 子句操作符4.2 范围值检查4.3 空值检查5. 高级数据过滤5.1 WHERE 组合过滤5.2 IN 操作符5.3 NOT 操作符6. 通配符过滤6.1 % 通配符6.2 _ 通配符7. 创建计算字段7.1 计算字段7.2 拼接字段7.3 执行算数计算8. 函数8.1 常用文本处理函数8.2 日期和时间

向日葵的专属太阳 3万+

C++移动构造函数详解

移动构造函数是C++11引入的一种特殊构造函数,用于从临时对象(右值)"窃取"资源来初始化新对象,而不是进行昂贵的深拷贝。char* data;public:// 移动构造函数:参数是右值引用 &&// 关键:把源对象的资源置空。

拒绝AI文,努力在AI时代写出感动人心的好文章 393

vc formal实例

gui 方式启动命令,

weixin_45077935的博客 682

【WorkBuddy专栏25】如何选择大模型——积分消耗、用途场景、选型决策全指南

【WorkBuddy专栏25】如何选择大模型——积分消耗、用途场景、选型决策全指南

AI人人懂 941

跟我学c++中级篇—类型定义的方式

本文系统阐述了编程中类型定义的重要性及c++中的实现方式。重点对比了宏定义、typedef与modern using三种机制,指出using在可读性、灵活性和模板支持上的优势,推荐优先使用。同时提醒开发者注意别名滥用、类型歧义、错误信息冗长等问题,强调统一规范与合理设计。最终结论:在现代c++开发中,应以using为主,兼顾简洁性与可维护性,避免陷入命名混乱与编译困境。

fpcc的专栏 86

基于Qt C++开发一款国产化的福昕风格PDF编辑工具

QString text = QInputDialog::getText(this, "文本批注", "输入批注内容:", QLineEdit::Normal, "", &ok);QString savePath = QFileDialog::getSaveFileName(this, "保存加密PDF", "", "PDF文件 (*.pdf)");QAction* zoomInAct = new QAction(QIcon::fromTheme("zoom-in"), "放大", this);

寒寒豆豆软件公司的博客 237

【C语言】字符与字符串函数

C语言中字符串为以\0结尾的字符数组,标准库函数基于此约定。本文解析字符串内存布局,详解ctype.h与string.h中字符分类、长度计算、拷贝、比较等函数的使用要点,强调长度判断与越界风险,最后通过命令行待办事项示例整合fgets、sscanf、strncpy、strcmp,展示实际应用中的关键细节。

记录在学习过程中学到的知识 355

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C++ 函数模版

模板参数:● template ,T 就是类型占位符,名字可以自定义,习惯用T● 占位符可以在函数返回值、形参、函数内部当作类型使用使用要点模板代码一般写在头文件:编译器需要看到完整模板源码,才能在每个编译单元完成实例化全局函数、类内成员函数都可以写成模板实例化发生在编译阶段,不是运行时隐式实例化:调用时编译器自动推导实参类型,生成对应版本函数。

2501_94041724的博客 306

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【C++11】包装器实操指南:function + bind

C++11引入std::function和std::bind解决可调用对象类型不统一问题。std::function将函数、仿函数、lambda等包装为统一类型,便于存储与传递,常用于实现运算映射表;std::bind则支持参数绑定、顺序调整及成员函数对象绑定,提升灵活性。二者结合可实现灵活的函数适配与回调机制,显著增强代码可维护性与扩展性。

2301_82161965的博客 313

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C++算法(七)

C++ stack算法题和一些客观题

2503_94479566的博客 374

C++ 运行时多态与虚函数机制全面剖析【面试重点】

构成C++ 运行时多态必须是基类的指针或者引用调用虚函数。被调用的函数必须是虚函数,并且派生类必须对该虚函数完成重写/覆盖(Override)。只有基类的指针或引用才能既指向基类对象,又指向派生类对象(切片机制);而只有完成了虚函数重写,派生类与基类才具备不同的函数行为,达到“指向谁就调用谁”的效果。在类成员函数的前面加上virtual关键字修饰,该成员函数就成为了虚函数。public:// 成员函数前加 virtual 修饰,声明为虚函数。

Fuyo_0209的博客 446

PCL 点云例程(第一篇):点云容器的六个字段,和教程没讲的三个坑

没讲。

qq_20575585的博客 302

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级 备考:莫队算法离线区间查询详解

备赛进行时:第十八届蓝桥杯软件赛报名已于 2026-10-08 10:00 开启、12-18 14:00 截止,省赛定在 2027-04-10(C/C++·Python 程序设计 9:00–13:00);中国电子学会 2026 年 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名 9/23–12/2 16:00、统考 12-12;全国青少年信息素养大赛 2026—2027 赛季算法应用主题赛也已进入复盘练兵窗口。

IT_Scratch的博客 159

【C++ 基础入门】C++继承(下):问题、底层原理与组合

C++继承(菱形继承的问题、虚继承原理、继承与组合、构造顺序)

2601_96587588的博客 797

C++算法 枚举

C++ 普通枚举算法题讲解

2503_94479566的博客 278

VScode-C语言-01-插件安装和C工程调试

右键此电脑,点击设置,进入设置界面,找到高级系统设置,点击进入进入环境变量。的文件夹,复制该文件夹地址(右键文件夹地址找到复制地址)。变量,双击打开之后将刚刚复制的地址添加进去,然后点确定。测试是否成功(cmd 界面输入gcc -v )VScode-04-C语言环境-调试。解压压缩包,找到文件夹内的一个叫。在环境变量中的系统变量中,找到。把文件夹放在不访问的地方。新建文件夹VScode_C。可以点击浏览按键添加路径。安装配置VCcode。

weixin_42770272的博客 226

【C++11】Lambda表达式详解:从商品排序到捕获列表、mutable与闭包

本文详解 C++11 Lambda 表达式,从商品排序场景出发,讲解其语法结构(捕获列表、参数、返回类型等)、捕获方式(值捕获与引用捕获)、mutable 修饰符作用及闭包机制。通过实例演示如何在 std::sort 中灵活定义比较规则,实现逻辑与调用位置的紧密结合,提升代码可读性与灵活性。

2401_88654727的博客 139

《C++ 项目:手写大模型接入 SDK》Gemini接口设计(上):初始化、全量响应实现和测试

本文系统完成了Gemini模型通过OpenAI兼容API的接入开发,基于Apifox验证接口规范,设计并实现GeminiProvider类,涵盖初始化、状态检测、全量响应等核心功能。重点处理了代理配置强制校验、Bearer鉴权、JSON序列化与响应解析等工程细节,并通过GTest与CMake完成单元测试,验证链路可用性。项目遵循策略模式,保持与DeepSeek、ChatGPT等模型的统一抽象接口,显著提升SDK可扩展性。

2501_91275995的博客 394

Cocos Creator3.8.8 + Xcode27.2 编译运行失败

Cocos Creator3.8构建IOS工程后,使用最新的Xcode27.2版本进行真机调试,遇到C++标准库冲突,如is_floating_point、is_arithmetic和is_signed失败,以及webp对齐失败等问题。

HYNN12的博客 430
上一篇: 北大ACM(POJ1014-Dividing)
下一篇: 北大ACM(POJ1016-Numbers That Count)
aenv6574
博客等级 码龄12年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值