20191005-T3-U91353 放射性

传送门:https://www.luogu.org/problem/U91353

这道题,我太弱了QWQ,爆搜过两个点走人......

先想想,这道题一眼DP,但是状态想出来了,决策就不会了,这道题的决策依赖于贪心

把每个点的按T[i]/L[i] 从小到大排序,然后当一个背包做。(!!!判断合法状态!!!)

贪心证明可以考虑临项交换。(不在证明(

还有一点就是背包的体积要开多少?

如果超过最大的E[i]就没用了。想想为什么?

最小的L[i]也有1  (为0的可以直接统计到答案,那是白给的)  所以不会超过max{E[i]}

#include<cstdio>
#include<algorithm>
#include<cstring>
#define R register
using namespace std;
int T,n,cnt,ans,sum,dp[21000];
struct ddd{
    int e,l,t;
}p[120];
inline bool com(ddd a,ddd b){
    return a.t*b.l<=b.t*a.l;
}
int main (){
    scanf("%d",&T);
    while(T--){
        ans=0,sum=0,cnt=0;
        memset(dp,0,sizeof(dp));
        scanf("%d",&n);
        for(R int i=1;i<=n;i++){
            cnt++;
            scanf("%d%d%d",&p[cnt].e,&p[cnt].l,&p[cnt].t);
            if(p[cnt].l==0) sum+=p[cnt].e,cnt--;
        }
        sort(p+1,p+1+cnt,com);
        for(R int i=1;i<=cnt;i++){
            for(R int j=20000;j>=p[i].t;j--){
                dp[j]=max(dp[j],(p[i].e-p[i].l*(j-p[i].t))>=0? dp[j-p[i].t]+(p[i].e-p[i].l*(j-p[i].t)):0 );
            }
        }
        for(R int i=1;i<=20000;i++) ans=max(ans,dp[i]);
        printf("%d\n",ans+sum);
    }
    return 0;
}

原文地址:https://www.cnblogs.com/coclhy/p/11643490.html

时间: 2024-11-06 14:53:38

20191005-T3-U91353 放射性的相关文章

因为发现对象名称 &#39;dbo.T3&#39; 和索引名称 &#39;PK__T3__3214EC2706CC942B&#39; 有重复的键,所以 CREATE UNIQUE INDEX 语句终止。重复的键值为 (1)。

sql语句:ALTER TABLE T3 ADD  PRIMARY KEY (ID); 执行报错: 消息 1505,级别 16,状态 1,第 1 行因为发现对象名称 'dbo.T3' 和索引名称 'PK__T3__3214EC270466E04C' 有重复的键,所以 CREATE UNIQUE INDEX 语句终止.重复的键值为 (1).消息 1750,级别 16,状态 0,第 1 行无法创建约束.请参阅前面的错误消息.语句已终止. 出错原因: 要在ID列上建主键,但id列数据有重复,不唯一.

[NOIP2016]愤怒的小鸟 D2 T3 状压DP

[NOIP2016]愤怒的小鸟 D2 T3 Description Kiana最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于(0,0)处,每次Kiana可以用它向第一象限发射一只红色的小鸟,小鸟们的飞行轨迹均为形如y=ax2+bx的曲线,其中a,b是Kiana指定的参数,且必须满足a<0. 当小鸟落回地面(即x轴)时,它就会瞬间消失. 在游戏的某个关卡里,平面的第一象限中有n只绿色的小猪,其中第i只小猪所在的坐标为(xi,yi). 如果某只小鸟的飞行

线性渐变和放射性渐变

创造放射性渐变:context.createRadialGradient(x0,y0,r0,x1,y1,r1); 参数:x0:渐变的开始圆的 x 坐标, 参数:y0:渐变的开始圆的 y 坐标, 参数:r0:开始圆的半径, 参数:x1:渐变的结束圆的 x 坐标, 参数:y1:渐变的结束圆的 y 坐标, 参数:r1:结束圆的半径: 创造线性渐变:context.createLinearGradient(x0,y0,r0,x1,y1,r1); 放射性渐变和线性渐变的使用放射一样,参数也基本相同:不同的

呈创XBase一体化实验室谱仪 (使用XBASE一体化探头测试氯化钾试剂的放射性)

呈创能谱分析系统的OEM解决方案 X射线荧光分析变得简单 γ射线能谱分析变得容易 核素识别分析更加集成 在计算机USB上即插即用 袖珍多道分析器 配上笔记本计算机和探测器便成便携谱仪 CCTEK提供了一套OEM探测器.前置放大器(前放).数字处理器和电源完整生产线. 目前提供:USB通信接口和RJ45网络接口(支持POE) 集成智能谱采集软件(开放API接口方便二次开发) 完整的OEM系统: 1.XR-1k系列探测器:兼容905系列NaI探测器(14pin,JECED 14B-38,兼容国内外多

Day4:T3搜索 T4数学题排列组合

T3:搜索 很出名的题吧,费解的开关 同T2一样也是一题很考思考的 附上题解再解释吧: 对于每个状态,算法只需要枚举第一行改变哪些灯的状态,只要第一行的状态固定了,接下来的状态改变方法都是唯一的:每一行需要改变状态的位置都在上一行中不亮的灯的正下面,因为只有这样才能使上一行的灯全亮.我们枚举第一行的状态改变方法(共2^5种),对于每种方法都依次改变下面几行的状态使上面一行灯全亮.到最后一行我们需要判断是否最后一行也恰好全亮,并更新最小步数. 首先需要找到第一行的状态,怎么写?枚举深搜啊 找到了其

现有T1、T2、T3三个线程,你怎样保证T2在T1执行完成之后执行,T3在T2执行完后执行?

考察join /**  * 现有T1.T2.T3三个线程,你怎样保证T2在T1执行完成之后执行,T3在T2执行完后执行?  * @author user  *  */ public class Test3 { public static void main(String[] args) throws InterruptedException { Thread T1 = new Thread(new T1()); Thread T2 = new Thread(new T2()); Thread T

Joomla T3框架布局设置(layout)

T3框架默认支持多种布局,在每种布局中,都是通过区块形式被构建起来的(头部.导航.主体.spotlight等).每个区块包含一个或多个模块,可以灵活指定模块的位置.也就是说,T3布局是以模块位置构成区块,再由区块组成布局样式. 1.创建布局 这种形式的布局文件将被保存在templates/t3_bs3_blank/local/tpls/下. 2.布局文件与布局配置文件保存位置 2.1 另存布局的保存位置(后台) 布局文件:templates/t3_bs3_blank/local/tpls/下 布

joomla T3框架中模板分离与自定义(local文件夹)

问题:辛苦做的模板,在框架升级后,莫名其妙的就不见了?原因是,在原有默认的模板修改内容,升级到新版本时,修改的内容被新内容覆盖更新掉了. 1. 怎么办? 模板内容被覆盖的问题,可以通过将用户的设置.模板与默认模板分离出来,具体方法如下: 在模板中,有个特殊的文件夹"local",将用户所有的布局配置信息.布局文件放到这个文件夹中. 2.文件的优先级 local文件夹:/templates/{template-name}/local template文件夹:/templates/{tem

usaco 17.Jan 铜组T3

上午在打usaco月赛的铜组题,T1T2是用来秒杀的,然而T3卡了一上午,下面给出题面: 题意大概就是输入一个N*N的矩阵,矩阵中元素只有0与1两种状态,每次操作以左上角的点为矩阵中某一矩阵的左上方顶点,将该矩阵中所有元素状态改变(即0变为1,1变为0),求将矩阵中元素全部变为0的最小次数. 第一次看到样例的时候以为就是一道的DFS或BFS的搜索题,然后果断写了DFS,很正常就WA了.然而其实这道题需要用到贪心... 题目中提到,一个矩阵被改变两次之后还是原先的状态,那既然这样,如果将右下角的点

[NOIP2016]换教室 D1 T3 Floyed+期望DP

[NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 i ( 1≤ i≤n)个时同段上, 两节内容相同的课程同时在不同的地点进行, 其中, 牛牛预先被安排在教室 ci上课, 而另一节课程在教室 di进行. 在不提交任何申请的情况下,学生们需要按时间段的顺序依次完成所有的n节安排好的课程.如果学生想更换第i节课程的教室,则需要提出中情.若申请通过,学生