首页 > 其他分享 >每日一练

每日一练

时间:2023-04-03 18:56:36浏览次数:35  
标签:存货量 struct int 每日 贺卡 物品 include

1..笑笑买贺卡(贪心算法)
题目:新年快到了,笑笑打算给他的好朋友们发贺年卡,而且它已经选好了自己要购买的贺卡的样式.俗话说得好,货比三家,笑笑来到了商店,看了各个商铺这种贺卡的价钱.不仅如此,笑笑还记住了每个商铺的存货量.已知笑笑打算购买m 张贺卡,问他最少花多少钱.

输入格式:
第一行有两个整数m 和n .其中m 表示要购买贺年卡的数量,n 表示商铺的个数.
以下n 行,每行有两个整数,分别表示该商铺这种贺年卡的单价和存货量.
输出格式:
仅一个数,表示笑笑所花的最少钱数.
输入样例:

要买 行
10 4
单价 存货量
4 3
6 2
8 10
3 6
输出样例:
36
数据规模:
0 < m ,n ≤ 1000
可以保证最后的结果在长整型范围内,商铺的总存货量不少于m .

测试数据:
10 4
4 3
6 2
8 10
3 6
输出结果:
36

解决方法:

#include <stdio.h>
struct shop{
  int price;
  int store;
};
int main(){
  int m,n,i,j;
  scanf("%d %d",&m,&n);
  struct shop s[n];
  for(i=0;i<n;i++){
    scanf("%d %d",&s[i].price,&s[i].store);
  }
  //求笑笑所花的最少钱数.
  //排序,根据单价排序
  int min;
  struct shop temp;
  for(i=0;i<n-1;i++){
    min=i;
    for(j=i;j<n;j++){
      if(s[j].price<s[min].price){
        min=j;
      }
    }
    temp=s[min];
    s[min]=s[i];
    s[i]=temp;
  }
  int money=0;
  i=0;
  while(m>0){
    if(m>=s[i].store){
      money=money+s[i].store*s[i].price;
      m=m-s[i].store;
    }else if(m<s[i].store){
      money=money+m*s[i].price;
      m=m-m;
    }
    i++;
  }
  printf("%d\n",money);
}

2.0-1背包问题(动态规划)
已知n种物品和一个可容纳C重量的背包,物品i的重量为wi,产生的效益为pi,在装包时物品i可以装入,也可以不装,但不可以拆开装。即物品i可产生的效益为pi,这里xi为0或1。请问如何装包,能使装包总效率最大。
Input
多组测试数据。 每组第一行输入2个整数,分别为C和物品种数n 然后是n行,每行输入2个整数,分别是物品的重量wi和物品产生的效益pi
Output
对于每组数据输出1行,包含2个数分别为装包的重量及产生的效益

Sample Input
60 6
15 32
17 37
20 46
12 26
9 21
14 30
Sample Output
60 134

解决方法:

#include <stdio.h>
#include <math.h>
struct bag{
  int weight;
  int price;
};
int main(){
  int n,c,i,j;
  scanf("%d %d",&c,&n);
  struct bag bg[n+1];
  for(i=1;i<=n;i++){
    scanf("%d %d",&bg[i].weight,&bg[i].price);
  }
  int dp[n+1][c+1];
  //初始
  for(i=0;i<=c;i++){
    dp[0][i]=0;
  }
  for(i=0;i<=n;i++){
    dp[i][0]=0;
  }
  //写入
  for(i=1;i<=n;i++){
    for(j=1;j<=c;j++){
      if(bg[i].weight<=j){//比较
        dp[i][j]=fmax(dp[i-1][j],dp[i-1][j-bg[i].weight]+bg[i].price);
      }else{//抄上一格
        dp[i][j]=dp[i-1][j];
      }
    }
  }
  printf("%d\n",dp[n][c]);
  //输出商品 从最后一个往前
  j=c;
  for(i=n;i>0;i--){
    if(dp[i][j]>dp[i-1][j]){
      printf("%d ",i);
      j=j-bg[i].weight;
    }
    if(j<=0)
      break;
  }
}

3.素数分解
验证 1000 以内的正偶数都能够分解为两个素数之和。请写出程序输出分解结果。

#include <stdio.h>
int isPrime(int n);
int main(){
  int i,j;
  for(i=4;i<=2000;i+=2){
    for(j=2;j<=i;j++){
      if(isPrime(j)==0&&isPrime(i-j)==0){
        printf("%d+%d=%d\n",j,i-j,i);
        break;
      }
    }
  }
  return 0;
}
//判断是不是质数
int isPrime(int n){
  if(n==1||n==0)
    return 1;//不为质数
  int i;
  for(i=2;i<n;i++){
    if(n%i==0){
      return 1;
    }
  }
  return 0;
}

解决方法:


解决方法:


解决方法:


解决方法:


解决方法:


标签:存货量,struct,int,每日,贺卡,物品,include
From: https://www.cnblogs.com/ZarkY/p/17284041.html

相关文章

  • [leetcode每日一题]4.3
    1053. 交换一次的先前排列提示中等80相关企业给你一个正整数数组 arr(可能存在重复的元素),请你返回可在 一次交换(交换两数字 arr[i] 和 arr[j] 的位置)后得到的、按字典序排列小于 arr 的最大排列。如果无法这么操作,就请返回原数组。 示例1:输入:arr=[3,2,1]输出:[3,1,2]......
  • 每日总结2023-04-02
    今天完成了厂商端 1.登录界面  2.查看数据界面,在此界面商家收到通知增加待完成选项,并选择是否准备好以及完成。   3.个人信息界面,可以保存个人信息 ......
  • 2024届计算机秋招100天备战:力扣每日打卡挑战全记录 & 面试题总结
    最近两个月力扣困难题不再落下,打卡全满勤,激发了持续刷题的斗志。这里将持续记录打卡过程中的难题和面试八股。2023/4/21039.多边形三角剖分的最低得分题目大意:多边形每个节点有一个数值,将多边形三角剖分,得分为所有三角形节点乘积之和。求三角剖分后的最低得分。做题评价:虽......
  • 每日总结 4.2
    今天进行了支付页面的编写,如下:  <!--pages/info/info.wxml--><viewclass="view1"><viewclass="thumb"><textclass="t1">{{name}}</text><imagesrc="{{image}}"mode=""/></......
  • 寒假每日一题——贝茜放慢脚步
    贝茜放慢脚步问题描述奶牛贝茜正在参加冬季哞林匹克运动会的越野滑雪比赛。她以每秒1米的速度出发。但是,随着时间的推移,她变得越来越疲倦,她开始放慢脚步。每次放慢脚步,贝茜的速度都会降低:减速一次后,她以每秒1/2米的速度移动,减速两次后,则以每秒1/3米的速度移动,依此类推......
  • 寒假每日一题——圆形牛棚
    圆形牛棚问题描述作为当代建筑的爱好者,农夫约翰建造了一个完美圆环形状的新牛棚。牛棚内部有n个房间,围成一个环形,按顺时针编号为1∼n。每个房间都既有通向相邻两个房间的门,也有通向牛棚外部的门。约翰想让第i个房间内恰好有ri头牛。为了让奶牛们有序的进入牛棚,他计划......
  • 寒假每日一题——镜子田地
    镜子田地问题描述农夫约翰在屋子外面放了一些旧镜子,他的奶牛们像往常一样调皮地偷走了它们!奶牛们将镜子放置在了一个矩形田地中,该田地可被划分为N×M个方格区域。在每个方格区域中,奶牛在其某对对角之间放置一个双面镜,因此,共有两种放法,一种为/放置(镜子连接方格左下角和右......
  • 寒假每日一题——懒惰的牛
    懒惰的牛问题描述这是一个炎热的夏日。懒洋洋的奶牛贝茜想将自己放置在田野中的某个位置,以便可以在短距离内尽可能多地吃到美味的草。贝茜所在的田野中共有N片草地,我们可以将田野视作一个一维数轴。第i片草地中包含gi单位的青草,位置坐标为xi。不同草地的位置不同。......
  • 寒假每日一题——金发姑娘和N头牛(map+手写离散化)
    金发姑娘和N头牛问题描述你可能听过关于金发姑娘和三只熊的经典故事。然而,鲜为人知的是,金发姑娘最终成了一个农民。在她的农场中,她的牛棚里有N头奶牛。不幸的是,她的奶牛对温度相当敏感。对于奶牛i,使其感到舒适的温度为Ai…Bi。如果金发姑娘将牛棚的恒温器的温度T设置......
  • 寒假每日一题——闪烁(状态压缩)
    闪烁问题描述农夫约翰对牛棚里昏暗的灯光感到不满,刚刚安装了一个新吊灯。新吊灯由N个灯泡组成,这N个灯泡围成一圈,编号为0∼N−1。奶牛对这个新吊灯非常着迷,并且喜欢玩以下游戏:对于第i个灯泡,如果在T−1时刻,它左侧的灯泡(当i>0时,为第i−1个灯泡;当i=0时,为第N−1......