题目

题目描述

小A最近迷上了在上课时玩《黄金矿工》这款游戏。为了避免被老师发现,他必须小心翼翼,因此他总是输。在输掉自己所有的金币后,他向你求助。每个黄金可以看做一个点(没有体积)。现在给出你N个黄金的坐标,挖到它们所需要的时间以及它们的价值。有些黄金在同一条直线上,这时候你必须按顺序挖。你可以瞬间把钩子转到任意角度。请你帮助小A算出在时间T内他最多可以得到多少价值的金子。

输入格式

第一行,两个整数N和T,表示黄金的个数和总时间。接下来N行,每行四个整数x,y,t,v分别表示黄金的坐标,挖到这个黄金的时间,以及这个黄金的价值。(0≤|x|≤200,0<y≤200,0<t≤200,0≤v≤200)

输出格式

一个整数,表示你可以在T时间内得到的最大价值。
输入输出样例
输入 #1
3 10
1 1 1 1
2 2 2 2
1 3 15 9
输入 #2
3 10
1 1 13 1
2 2 2 2
1 3 4 7
输出#1
3
输出 #2
7
说明/提示
30%的数据,0 < T ≤ 4000
100%的数据,N ≤ 200, 0 < T ≤ 40000

思路

题的类型(大佬可以直接空降思路)

  • 排序

排序有sort函数,当数组记录第一个值是一时其格式为sort(数组名+1,数组名+总的数组量+1);如果是0,则为sort(数组名,数组名+总的数组量)

#include<iostream>
#include<algorithm>//sort头文件
using namespace std;
int a[100];
int main(){int n;cin>>n;for(int i=0;i<n;i++){//for(int i=1;i<=n;i++){cin>>a[i];         //     cin>>a[i]}                     // }   sort(a,a+n);        // sort(a+1,a+n+1); for(int i=0;i<n;i++){//for(int i=1;i<=n;i++)cout<<a[i]<<" ";}return 0;
}

sort如果不加专门的函数就默认为从小到大,那么从大到小怎么排呢?
只需要加上一个函数,专门用于排序。

#include<iostream>
#include<algorithm>
using namespace std;
bool cmp(int a,int b){return a>b;
}
int a[100];
int main(){int n;cin>>n;for(int i=0;i<n;i++){cin>>a[i];        }                      sort(a,a+n,cmp);        for(int i=0;i<n;i++){cout<<a[i]<<" ";}return 0;
}
  • 结构体

刚才说的排序,只是针对一维数组,结构体就是针对几个数组。就像有几个家庭搞竞赛,最终的赢家不可能是某个家庭中的一个人,而是整个家庭。
结构体是这样进行从大到小排序的

#include<iostream>
#include<algorithm>
using namespace std;
struct node{int a,b,c,d;//每个家庭的成员
}a[100];//表示有多少个家庭
bool cmp(node p,node q){//这里把int变为结构体名,即node,临时进行两两PK return p.a >q.a ;//进行排名(看你选什么项目)
}
int main(){int n;cin>>n;for(int i=0;i<n;i++){cin>>a[i].a>>a[i].b>>a[i].c >>a[i].d ;      }                      sort(a,a+n,cmp);//这里的sort我们可以定个规则,比如哪家孩子跳得最高,这个家庭就赢了 for(int i=0;i<n;i++){//(接上)也可以定多个规则 cout<<a[i].a <<" "<<a[i].b <<" "<<a[i].c <<" "<<a[i].d ;}return 0;
}

思路
这道题本蒟蒻也没想到这么简单
先来解剖例1吧,如果没有时间限制我肯定选第三个,第三个矿看起来很诱人,无奈时间限制…那就看第二值钱的吧,符合,那就捞走,但时间要减,剩余时间去捞第三个矿正好,那就捞走。就得到结果;
思路已经很清晰了,就是排序(这个矿的价值),接着判断时间是否合法,这道题就刷了过去。

代码

大麻代码保证AC哦

#include<iostream>
#include<algorithm>
using namespace std;
struct node{int x,y,t,v;
}k[201];
bool cmp(node p,node q){return p.v >q.v ;
}
int main(){int n,at,vv=0;//计算总值cin>>n>>at;for(int i=1;i<=n;i++){cin>>k[i].x >>k[i].y >>k[i].t >>k[i].v ;}sort(k+1,k+n+1,cmp);//有两种写法,上已介绍for(int i=1;i<=n;i++){if(k[i].t >at)continue;//如果这个矿超过了我们要花的时间,就看下一个矿vv+=k[i].v ;at-=k[i].t ;}cout<<vv<<endl;return 0;
}

有谁知道坐标(x,y)有什么用吗…
求助大佬orz

洛谷P3961 [TJOI2013]黄金矿工—C++相关推荐

  1. 洛谷3961 [TJOI2013]黄金矿工

    题目描述 小A最近迷上了在上课时玩<黄金矿工>这款游戏.为了避免被老师发现,他必须小心翼翼,因此他总是输.在输掉自己所有的金币后,他向你求助.每个黄金可以看做一个点(没有体积).现在给出你 ...

  2. 洛咕 P3961 [TJOI2013]黄金矿工

    甚至都不是树形背包= = 把每条线抠出来,这一条线就是个链的依赖关系,随便背包一下 // luogu-judger-enable-o2 #include<bits/stdc++.h> #d ...

  3. [TJOI2013]黄金矿工解题报告

    题目描述 小A最近迷上了在上课时玩<黄金矿工>这款游戏.为了避免被老师发现,他必须小心翼翼,因此他总是输.在输掉自己所有的金币后,他向你求助.每个黄金可以看做一个点(没有体积).现在给出你 ...

  4. [TJOI2013]黄金矿工

    题目描述 小A最近迷上了在上课时玩<黄金矿工>这款游戏.为了避免被老师发现,他必须小心翼翼,因此他总是输.在输掉自己所有的金币后,他向你求助.每个黄金可以看做一个点(没有体积).现在给出你 ...

  5. TJOI2013 黄金矿工(01背包改)

    题目描述 小A最近迷上了在上课时玩<黄金矿工>这款游戏.为了避免被老师发现,他必须小心翼翼,因此他总是输.在输掉自己所有的金币后,他向你求助.每个黄金可以看做一个点(没有体积).现在给出你 ...

  6. 洛谷P3966 [TJOI2013]单词(后缀自动机)

    传送门 统计单词出现次数--为啥大家都是写AC自动机的嘞--明明后缀自动机也能做的说-- 统计出现次数这个就直接按长度排序然后做个dp就好,这是SAM的板子的要求啊,不提了 然后考虑怎么让所有串之间隔 ...

  7. 洛谷 P4823 [TJOI2013]拯救小矮人

    题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口. 对于每一个小矮人,我们知道他从 ...

  8. 洛谷 P3964 [TJOI2013]松鼠聚会(切比雪夫距离和曼哈顿距离转换)

    这个距离的定义就是切比雪夫距离的定义.切比雪夫距离的计算式子是:d = max(|x1 - x2|,|y1 - y2|) 在切比雪夫距离的定义下,一个点和周围相邻的8个点的距离相等(都为1). 如果将 ...

  9. 洛谷3964 [TJOI2013]松鼠聚会

    题目描述 草原上住着一群小松鼠,每个小松鼠都有一个家.时间长了,大家觉得应该聚一聚.但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理. 每个小松鼠的家可以用一个点x,y表示,两个点的距离定义为点( ...

最新文章

  1. 【OpenGL】四、Visual Studio 2019 配置 GitHub ( 从 GitHub 上克隆项目 )
  2. 腾讯云的ubuntu虚拟主机上再安装VirtualBox遇到的一些错误
  3. Linux LED驱动开发实验(直接操作寄存器 -- 实际开发很少这样做)
  4. Volatile的陷阱
  5. 【入门5】字符串(今天刷洛谷了嘛)
  6. 刘海变挖孔!小米高管:明年弹出式全面屏几乎没有了
  7. frisby用例动态链
  8. hive高级数据类型
  9. 计算机二级报名省市,计算机二级报名通知:全国19省市报名时间及考试安排!...
  10. win10计算机快捷键设置,win10计算器快捷键设置_w10电脑计算器快捷键怎么添加-win7之家...
  11. 使用pm2部署vue项目
  12. linux下安装MySQL-server-5.6.28
  13. matlab 替换字符 数字,使用正则表达式替换文本
  14. API服务平台,实现多个API的编排与聚合
  15. 微软翻译与服务器断开,一水的机翻?微软中文翻译也闹笑话了
  16. SQLiteManager 序列号 破解
  17. 七牛云彭垚:智能平台的创新和发展
  18. 男人写手账哪来那么的麻烦?
  19. Words of the Start
  20. Docker部署Canal

热门文章

  1. 【Arduino实验11 LED点阵屏显示】
  2. 第三方网站实现钉钉(DingTalk)扫码登陆(Vue+SpringBoot)
  3. 一闪一闪亮晶晶,我有一颗小星星
  4. C++读取HDF5文件
  5. 数据可视化分析教学课件——FineBI实验册节选====商品分析
  6. 垃圾分类 小程序完整项目!
  7. 是德示波器软件,Keysight示波器上位机软件NS-Scope
  8. 数值分析实验 实验1-1 拉格朗日插值公式 python3实现
  9. 中小企业网络构架环境搭建
  10. 【MySQL】深入理解MySQL索引原理(MySQL专栏启动)