备考CSP-J—贪心

额……既然是备考,那么一定要动脑筋,一共5题,大家好好思考一下。

一:P1250 种树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

二:P1020 [NOIP1999 提高组] 导弹拦截 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

三:P1230 智力大冲浪 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

四:P1095 [NOIP2007 普及组] 守望者的逃离 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 

五:

某天 KID 利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID 虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为 w 的物品。岛上金属有 s 个种类, 每种金属重量不同,分别为 n1,n2,...,ns,同时每个种类的金属总的价值也不同,分别为 v1,v2,...,vs。KID 想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。注意到金属是可以被任意分割的,并且金属的价值和其重量成正比

思考一小时……

思路:贪心。要让树最少,就要让树种在区间的重叠部分。所以,将尾部从小到大排序;遍历每一个区间,用一个变量表示这个区间已经种了多少棵树,若未达到意见,则从后往前种。

#include <bits/stdc++.h>
using namespace std;
int n,m,ans;
struct tree{int x,y,t;
}s[509];
bool used[10000];
bool cmp(tree a,tree b){return a.y<b.y;
}
int main(){cin>>n>>m;for(int i=1;i<=m;i++){cin>>s[i].x>>s[i].y>>s[i].t;}sort(s+1,s+1+m,cmp);for(int i=1;i<=m;i++){int k=0;for(int j=s[i].x;j<=s[i].y;j++) if(used[j]) k++;if(k>=s[i].t) continue;for(int j=s[i].y;j>=s[i].x;j--){if(used[j]==0){k++;ans++;used[j]=1;if(k>=s[i].t) break;}}}cout<<ans<<endl;return 0;
}

思路:先挑扣款大的玩,如果时间被占用了,就只能扣钱了。

#include <bits/stdc++.h>
using namespace std;
int m,n,used[509],ans;
struct game{int t,w;
}s[509];
bool cmp(game a,game b){return a.w>b.w;
}
int main(){cin>>m>>n;for(int i=1;i<=n;i++) cin>>s[i].t;for(int i=1;i<=n;i++) cin>>s[i].w;ans=m;sort(s+1,s+1+n,cmp);for(int i=1;i<=n;i++){int time=s[i].t;while(time>0&&used[time]) time--;if(time>0) used[time]=true;else ans-=s[i].w;}cout<<ans<<endl;return 0;
}

思路:能闪烁就闪烁,魔法值不够就加。

#include <bits/stdc++.h>
using namespace std;
int main()
{int m,s,t,now=0;cin>>m>>s>>t;int s1=0,s2=0;for(int i=1;i<=t;i++){s1+=17;if(m>=10) {s2+=60;m-=10;}else m+=4;if(s2>s1) s1=s2;if(s1>s){cout<<"Yes"<<endl<<i<<endl;return 0;}}cout<<"No"<<endl<<s1<<endl;return 0;
}

思路:算一算性价比

#include<bits/stdc++.h>
using namespace std;
struct gold{int n,v; double dj;
} a[109];
int k,s,w;double ans_v; 
int cmp(gold x,gold y) 
{ return x.dj>y.dj;}
int main()
{   cin>>k;while(k--){cin>>w>>s;ans_v=0; for(int i=1;i<=s;i++){cin>>a[i].n>>a[i].v;a[i].dj=a[i].v*1.0/a[i].n;}sort(a+1,a+1+s,cmp);int j=1;while(w>0&&j<=s){if(a[j].n<w) { ans_v+=a[j].v;w-=a[j].n;}else { ans_v+=w*a[j].dj;w=0;}j++;}printf("%.2f\n",ans_v);} return 0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【笔记】Helm-4 最佳实践-2 values

values 最佳实践的该部分包括了values的使用。这部分指南中&#xff0c;我们提供了关于您如何构建和使用values的建议&#xff0c;以及专注于设计chart的values.yaml文件。 命名规范 变量名称以小写字母开头&#xff0c;单词按驼峰区分&#xff1a; 正确的&#xff1a; chic…

JVM-初始JVM

什么是JVM JVM 全称是 Java Virtual Machine&#xff0c;中文译名 Java虚拟机。JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 Java源代码执行流程如下&#xff1a; JVM的功能 1 - 解释和运行 2 - 内存管理 3 - 即时编译 解释和运行 解释…

【二】车载FrameWork添加系统服务

自定义系统服务 常见的AMS、PWS、WMS等等都是系统服务&#xff0c;运行于system_server进程&#xff0c;并且向servicemanager进程注册其Binder以便其他进程获取binder与对应的服务进行通信。为了新增自定义系统服务&#xff0c;我们可以参考AMS等原生系统服务编写如下文件&am…

Brian Kernighan 算法应用

Brian Kernighan算法&#xff0c;也被称为布莱恩柯林汉算法&#xff0c;是一种用于统计二进制中位数为1的个数的高效算法。该算法通过不断清除二进制数中最右侧的1来计算1的个数&#xff0c;直到二进制数变为0为止。 201. 数字范围按位与 461. 汉明距离 # 461. 汉明距离 clas…

Python教程:拆分多级目录的方法

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 实现多级目录差分&#xff0c;举例说明如下&#xff1a; 假设现有的目录结构如下&#xff1a;1、2、2.1、2.2、2.3、2.4、3、4、5、6、6.1、6.1.1、6.1.2、6.1.3、6…

WinSCP下载安装并实现远程SSH本地服务器上传文件

文章目录 1. 简介2. 软件下载安装&#xff1a;3. SSH链接服务器4. WinSCP使用公网TCP地址链接本地服务器5. WinSCP使用固定公网TCP地址访问服务器 1. 简介 ​ Winscp是一个支持SSH(Secure SHell)的可视化SCP(Secure Copy)文件传输软件&#xff0c;它的主要功能是在本地与远程计…

【Unity学习笔记】第十一 · 动画基础(Animation、状态机、root motion、bake into pose、blendTree、大量案例)

转载引用请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/132081959 作者&#xff1a;CSDN|Ringleader| 如果本文对你有帮助&#xff0c;不妨点赞收藏关注一下&#xff0c;你的鼓励是我前进最大的动力&#xff01;ヾ(≧▽≦*)o 主…

#Uniapp:微信开发者工具运行与打包---打包H5---打包app

微信开发者工具运行与打包 manifest.json 添加上微信小程序AppID ** 如果点击打不开从微信开发者工具先到处本地C:\Users\fjgk-28\Desktop\huanrun\uni-demo\uni-shop\unpackage\dist\dev\mp-weixin 打开 添加上AppID试试** 微信开发者工具上传代码需要 "permission&quo…

Redis——list以及他的应用场景

介绍 &#xff1a;list 即是 链表。链表是一种非常常见的数据结构&#xff0c;特点是易于数据元素的插入和删除并且且可以灵活调整链表长度&#xff0c;但是链表的随机访问困难。许多高级编程语言都内置了链表的实现比如 Java 中的 LinkedList&#xff0c;但是 C 语言并没有实现…

文件防止泄密的措施,公司如何防止电脑泄密(防止信息泄露的6大秘籍)

在当今信息时代&#xff0c;数据安全和信息保密对于企业来说至关重要。然而&#xff0c;泄密事件时有发生&#xff0c;给企业带来巨大的损失和风险。 某泄密事件&#xff1a; 某大型企业发生了一起严重的电脑泄密事件&#xff0c;导致大量客户资料和内部战略规划被泄露。 经过…

网工每日一练(1月25日)

【说明】 某仓储企业网络拓扑结构如图1-1所示&#xff0c;该企业占地500亩。有五层办公楼1栋&#xff0c;大型仓库10栋。每栋仓库内、外部配置视频监控16台&#xff0c;共计安装视频监控160台&#xff0c;SwitchA、服务器、防火墙、管理机、RouterA等设备部署在企业办公楼一层的…

【C++入门到精通】智能指针 shared_ptr循环引用 | weak_ptr 简介及C++模拟实现 [ C++入门 ]

阅读导航 引言一、std::shared_ptr的循环引用1. 概念2. 示例分析 二、std::weak_ptr1. 简介2. weak_ptr模板类提供的成员方法3. 使用示例&#xff08;1&#xff09;weak_ptr指针的创建&#xff08;2&#xff09;完整示例&#xff08;解决上面循环引用问题&#xff09; 4. C模拟…

如何使用Flutter构建高质量的用户界面

Flutter 是一种比较流行的移动应用开发框架&#xff0c;可以让开发者使用一个代码库构建高质量的 iOS 和 Android 应用。Flutter 以其快速、美观、高度可定制等优点吸引了开发社区的广泛关注。但如何使用 Flutter 构建高质量的用户界面呢&#xff1f;下面分为以下几个部分简单的…

centos更换国内yum下载源

centos更换国内yum下载源 1.前提&#xff0c;可以ping通百度 先下载wget工具&#xff0c;可能有点慢 yum install -y wget2.备份原来的下载源 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup3.更换源 3.1更换阿里源 # 下载阿里云的…

JNI中获取当前时间戳

在JNI中获取当前时间戳&#xff0c;使用java.util.Date类的getTime()方法。以下是在JNI中获取当前时间戳的示例代码&#xff1a; 首先&#xff0c;在Java代码中定义一个获取当前时间戳的方法&#xff1a; public class MyUtils {public static native long getCurrentTimesta…

Matlab图像处理——谷物颗粒计数

针对目前谷物人工计数和光电计数方法存在的不足 , 提出了一种基于 Matlab 图像识别和处理技术的谷物计数方法 , 并用实例验证了其可靠性。该方法减轻了操作者劳动强度 , 弥补了人视觉的不足之处 , 提高了效率及准确率 , 为今后进一步研究奠定了必要的理论与实践基础 , 对完善“…

HarmonyOS鸿蒙应用开发 (二、应用程序包结构理解及Ability的跳转,与Android的对比)

在进行应用开发前&#xff0c;对程序的目录及包结构的理解是有必要的。如果之前有过android开发经验的&#xff0c;会发现OpenHarmony的应用开发也很简单&#xff0c;有很多概念是相似的。下面对比android分析总结下鸿蒙的应用程序包结构&#xff0c;以及鸿蒙对比android的诸多…

armv8 - GIC-V2 中断控制器

GIC起源 上一节中&#xff0c;粗略讲了hylicos上用的armv7上的一个通用中断控制器&#xff0c;其只支持60个中断源。但现代SoC上&#xff0c;中断系统正变得越来越复杂&#xff0c;旧的中断控制器已经无法胜任这些系统&#xff0c;主要体现在以下几点上&#xff1a; 中断源越…

android 自定义软键盘的显示和隐藏

记一下,以后不用找在InputMethodService中有这两个方法可以看到软键盘显示状态 //软键盘隐藏 override fun onWindowHidden() {super.onWindowHidden() } //软键盘显示 override fun onWindowShown() {super.onWindowShown() } 在activity中可以通过这种方法看到软键盘显示状…

《WebKit 技术内幕》学习之六(1): CSS解释器和样式布局

《WebKit 技术内幕》之六&#xff08;1&#xff09;&#xff1a;CSS解释器和样式布局 CSS解释器和规则匹配处于DOM树建立之后&#xff0c;RenderObject树之前&#xff0c;CSS解释器解释后的结果会保存起来&#xff0c;然后RenderObject树基于该结果来进行规范匹配和布局计算。当…