首页 > 其他分享 >简单的贪心(一)

简单的贪心(一)

时间:2024-05-25 17:30:24浏览次数:22  
标签:输出 int 整数 苹果 简单 格式 输入 贪心

礼物 查看测评数据信息

国庆马上要到了。小明喜欢的礼物有n种分别是:公仔、电子手表、漫画书等。每种礼物有一件,每种礼物价钱都不一样。小明手头上有 m 元。小明最多可以买多少件礼物?

输入格式

第一行,两个整数:n m   1 <= n<=100,1<=m<= 100000。

第二行,n个空格分开的整数(每个整数<=1000),代表每种礼物的价钱。 

输出格式

一个整数,小明能买多少件礼物

输入/输出例子1

输入:

3 100

40 70 50 

输出:

2

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[999999],ans,s=0;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)cin>>a[i];
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++){
        ans+=a[i];
        if(ans>m)break;
        else s++;
    }
    cout<<s;
    return 0;
}

糖果 查看测评数据信息

你有n个盒子,第i个盒子有a[i]颗糖果。你有n个朋友,你打算给每个朋友都送一盒糖果。

为了公平,每个朋友得到的糖果数量要一样多。于是你打算吃掉某些盒子里面的一部分糖果,以达到每个盒子剩下的糖果都一样多。

你至少需要吃掉多少颗糖果?

输入格式

第一行,一个整数t, 表示有t组测试数据,t<=100。

每组测试数据格式如下:

第1行,一个整数n。 1<=n<=50。

第2行,n个整数,第i个整数是a[i]。1<=a[i]<=10000000。

输出格式

共t行,每行一个整数。

输入/输出例子1

输入:

5

5

1 2 3 4 5

6

1000 1000 5 1000 1000 1000

10

1 2 3 5 1 2 7 9 13 5

3

8 8 8

1

10000000

输出:

10

4975

38

0

0

#include<bits/stdc++.h>
using namespace std;
long long m,n,a[9999999],s=0,minn=9999999;
int main(){
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>n;
		for(int j=1;j<=n;j++){
			cin>>a[j];
			if(a[j]<minn)minn=a[j];
		}
		for(int j=1;j<=n;j++){
			if(a[j]!=minn)s=s+(a[j]-minn);
		}
		cout<<s<<endl;
		s=0;
		minn=9999999;
	}
    return 0;
}

数字圈 查看测评数据信息

当我们写数字时会发现有些数字有封闭区域, 有的数字没有封闭区域。 数字 0 有一个封闭区域, 数字 1、 2、3 都没有封闭区域, 数字 4 有一个封闭区域, 数字 5 没有封闭区域, 数字 6 有一个封闭区域, 数字 7 没有

封闭区域, 数字 8 有两个封闭区域, 数字 9 有一个封闭区域。

现在你要构造一个最小的非负整数, 使得它的各位数字的封闭区域的数量加起来的总和恰好等于 K。

输入格式

一个整数 K。 1 <= K <= 2500。

输出格式

满足题意的最小的非负整数。

输入/输出例子1

输入:

1

输出:

0

输入/输出例子2

输入:

输出:

8

输入/输出例子3

输入:

40

输出:

88888888888888888888

#include<bits/stdc++.h>
using namespace std;
int k;
int main(){
    cin>>k;
    if(k==1){
        cout<<0;
        return 0;
    }
    if(k%2==1){
        cout<<"4";
        for(int i=1;i<=k/2;i++)cout<<"8";
    }
    else{
        for(int i=1;i<=k/2;i++)cout<<"8";
    }
    return 0;
}

渡河 查看测评数据信息

总共有 X 人要坐船过河。

一个小船最多可以坐 4 人,一个小船固定收费 32 元。

一个大船最多可以坐 6 人,一个大船固定收费 36 元。

码头有无穷多小船和大船。问如何坐船,才能使得总费用最小。

输入格式

一个整数 X。

输出格式

一个整数,表示最小的总费用。

输入/输出例子1

输入:

4

输出:

32

输入/输出例子2

输入:

12

输出:

72

样例解释

60%的数据, 1 <= X <= 1000

80%的数据, 1 <= X <= 1000000

100 的数据, 1 <= X <= 2000000000

#include<bits/stdc++.h>
using namespace std;
long long x,s,l;
int main(){
    cin>>x;
    if(x<=4)s=32;
    else{
        s+=(x/6)*36;
        l=x%6;
        if(l==5)s+=36;
        if(l==4||l==3)s+=32;
        if(l==2||l==1)s+=28;
    }
    cout<<s;
    return 0;
}

最大步数 查看测评数据信息

给出了两个非负整数 P 和 Q。您的任务是使得 P 和 Q 相等。在每一步中,您可以执行以

下两项操作之一:

1、将任何质数加到 P 上。

2、从 Q 减去任何质数。

如果不可能使 P 和 Q 相等,则输出-1。否则,输出一个非负整数:可以执行的最大步数。

输入格式

一行,两个整数 P 和 Q。 0 <= P,Q <= 10^18

输出格式

一个整数

输入/输出例子1

输入:

5 9

输出:

2

输入/输出例子2

输入:

5 10

输出:

2

输入/输出例子3

输入:

5 6

输出:

-1

#include<bits/stdc++.h>
using namespace std;
long long p,q;
int main(){
    cin>>p>>q;
    if(p>q){
        cout<<-1;
        return 0;
    }
    if(p-q==0){
        cout<<0;
        return 0;
    }
    if(p-q==1){
        cout<<-1;
        return 0;
    }
    cout<<(q-p)/2;
    return 0;
}

小美吃苹果 查看测评数据信息

吃货小美,特别喜欢吃苹果。有一天好朋友lili送给她三箱苹果。第1个箱子里有n1个苹果,第2箱有n2个,第3个箱子有n3个。因为小美比较矫情。所以她在吃苹果时制定了一个规则让箱子里剩余的苹果看起来更舒坦一点儿。
规则1:三个装苹果的箱子位置不允许交换。
规则2:吃完苹果后每个箱子都不能空。
规则3:吃完苹果后三个箱子剩余的苹果数量必须是递增的。也就是说,第1个箱子剩余的苹果数少于第2个箱子,第2个箱子剩余的苹果数少于第3个箱子。

因为小美实在吃得有点饱了,请问小美怎样才能在尽量少吃苹果的前提下让箱子中剩余的苹果数量满足要求呢?
如果可以实现则输出她应该吃多少个苹果,如果她无法完成心愿就输出-1。

输入格式

空格隔开的n1 n2 n3 (三个箱子里苹果的数量 1<= n1,n2,n3 <= 4000 )

输出格式

一个整数,最少需要吃多少个苹果

输入/输出例子1

输入:

15 40 22

输出:

19

#include<bits/stdc++.h>
using namespace std;
int e(int a,int b,int c){
    if(a<b&&b<c&&a>0)
        return 0;
    if(a<1||b<2||c<3)
        return -1;
    int count=a+b+c;
    while(a>=b||b>=c){
        if(a>=b)
            a--;
        if(b>=c)
            b--;
    }
    return count-a-b-c;
}
int main(){
    int a,b,c,n;
    cin>>a>>b>>c;
    cout<<e(a,b,c);
    return 0;
}

购书 查看测评数据信息

书店稿促销优惠活动:“买 3 本免费 1 本”。即如果你买 3 本书,价格最便宜的那本书就不收钱。如果买很多书, 不同分组优惠的价格可能不同。比如,买 7 本书,价格分别是:10,3,2,4,6,4,9。 如果分组是: (10,3,2),(4,6,4)和(9),第一组免费价格 2,第二组免费价格 4,第三组不能免费。

现在,你买了 N 本书,请恰当分组(每组 1 本到 3 本),使得花费最少?

输入格式

第一行包含 1 个整数 N, 1≤N≤100000。

下面 N 行,每行 1 个整数 Ci 表示一本书的价格。 1≤ Ci ≤ 100000。

输出格式

一个整数,最少付款是多少。

输入/输出例子1

输入:

4  

3 2 3 2

输出:

8

输入/输出例子2

输入:

6

6 4 5 5 5 5

输出:

21

#include <bits/stdc++.h>
using namespace std;
bool cmp(int x,int y){
	return x>y;
}
int n,a[100001],s=0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=n;i++)if(i%3!=0)s+=a[i];
	cout<<s;
	return 0;
}

标签:输出,int,整数,苹果,简单,格式,输入,贪心
From: https://blog.csdn.net/hjxxlsx/article/details/139197606

相关文章

  • Django应用创建到启动的简单示例
    一、系统环境和前置安装Ubuntu系统192.168.2.101,客户端192.168.2.100python3及虚拟环境管理库python3-venv创建项目文件创建djangoweb项目配置ALLOW_HOSTS=['*']二、创建并注册app创建django-adminstartappapp1注册app修改项目配置文件settings.py,在INSTALLED_APPS......
  • JDBC的简单使用以及介绍
    JDBC(JavaDataBaseConnectivity)Java语言连接数据库再本模块中,java提供里一组用于连接数据库的类和接口Java语言开发者,本身没有提供如何具体连接数据库的功能只是定义了一组java程序连接数据库的访问接口连接到数据库向数据库发送增,修改,删除这一类的sql发送查询s......
  • 反悔贪心[USACO09OPEN] Work Scheduling G
    intn;intans=0;PIIa[N];//定义priority_queue的比较函数structcmp{booloperator()(PIIa,PIIb){returna.second>b.second;}};priority_queue<PII,vector<PII>,cmp>pq;voidsolve(){cin>>n;for(i......
  • 49.SpringMVC简单整理
    SpringMVC本质也是解耦先提前插一嘴这里用到的是简单的maven项目:在添加web应用时报错ArtifactsWebfacetresources爆红参考:https://blog.csdn.net/weixin_43739266/article/details/122133398添加web依赖要为项目添加web项目依赖否则无法tomcat访问为了介绍MVC......
  • 【简单介绍下7-Zip,什么是7-Zip?】
    ......
  • 【简单探索微软Edge】
    ......
  • uni-app 微信 支付宝 小程序 使用 longpress 实现长按删除功能,非常简单 只需两步
    1、先看效果2、直接上代码ui结构<viewclass="bind"@longpress="deleteImage":data-index="index"><viewclass="bind_left">绑定设备</view><viewclass="bind_right"><viewc......
  • uniapp快速分享知识点,请求简单封装 登陆 ,支付 , 分享 , 短信,
    第一部份requrety请求封装 备注:关于环境配置ui选择插件安装在我的另一个帐号中前几天也经写了,这个博客就不用在写一遍了另一博客地址:https://www.cnblogs.com/ZzwWan/p/18202502module.exports=(vm)=>{//初始化请求配置uni.$u.http.setConfig((config)=>{......
  • 简单的事情重复做重复的事情认真做
    简单的事情重复做重复的事情认真做 工作是枯燥的,每天都是重复着同样的事,说着同样的话,如何才能让工作也起到保鲜作用呢?其实生活也是同样的,循环反复着经过,所以才产生了你的喜怒哀乐.才会有烦恼和兴奋的交替,那么在这个循环连中,怎么让他朝着你向往的方向发展而保持着新鲜感呢??~~探索!!......
  • hping 一键开始简单的DOS攻击(KALI工具系列四)
    目录1、KALILINUX简介2、hping工具简介  3、在KALI中使用hping3.1目标主机IP(win)3.2KALI的IP  4、命令示例4.1指定端口发送TCP文件4.2端口连续性ping4.3 用ICMP去ping4.4用ACK去ping该ip4.5用UDP去ping该ip5、操作实例5.1SYN洪水攻击5.2ICMP洪水攻......