3.21小题总结

第一题:生日蛋糕

题解:这题是蛋糕结构是一层一层的,估计很多人很快就能想到是dfs,但是这题的难想的点在于

你每层的状态该怎么去确定,你怎么来确定每层的半径和高度是多少,一开始我也不知很理解,直到在网上看到了一篇大佬的博客才让我茅塞顿开,我干嘛非要确定呢,全用最小的不就好了,因此我们要写出每层的最小的体积和面积,然后用前缀和累加起来,然后三个剪枝(代码里有注释)减少运算,就可以愉快的AC了

#include<iostream>
#include<cstring>
#include<cstdio>
#include <queue>
#include<math.h>
using namespace std;
int n,m;
int sums[16];
int sumv[16];
int sum=0x7fffffff;//记录最小的值 void dfs(int t,int s,int v,int r,int h)
{if(t==0){if(s<sum&&v==n){sum=s;}return ;}if(s+sums[t]>sum)//第一个剪枝,你目前的面积,加上上面层的最小的面积>已知面积,可以直接跳过return ;if(v+sumv[t]>n)//第二个剪枝,你目前的体积,加上上面层的最小的体积>要求的体积,可以直接跳过return ;if(s+2*(n-v)/r>sum)//第三个剪枝,你把所有体积都做成一层蛋糕,如果面积>已知面积,跳过return ;for(int i=r-1;i>=t;i--){if(t==m)s=i*i;int h1=min(h-1,(n-v-sumv[t-1])/(i*i));for(int j=h1;j>=t;j--){dfs(t-1,s+2*i*j,v+i*i*j,i,j);}}return ;
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){sumv[i]+=sumv[i-1]+i*i*i;sums[i]+=sums[i-1]+2*i*i;}dfs(m,0,0,sqrt((double)n)+1,n);if(sum==0x7fffffff){printf("0");return 0;}printf("%d",sum);return 0;
}

第二题:速算24

题解:这题一开始也卡了我好久,我一直不明白哪里错了,后面问了学长,但是还是自己想出来为什么错了,因为有可能二三进行运算,这样的话,就会漏掉情况,所以一开始一直过不了,然后写出来了,还用到了全排列函数(不会的可以去了解一下),AC代码

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;char s[5]={0};
int num[5]={0};
int flag=0;void dfs(int sum,int count,int nextt)
{if(flag==1)return ;if(count==3){if(sum+nextt==24)flag=1;if(sum-nextt==24)flag=1;if(sum*nextt==24)flag=1;if(nextt!=0&&sum%nextt==0&&sum/nextt==24)flag=1;return ;}dfs(sum+nextt,count+1,num[count+1]);dfs(sum-nextt,count+1,num[count+1]);dfs(sum*nextt,count+1,num[count+1]);if(nextt!=0&&sum%nextt==0){dfs(sum/nextt,count+1,num[count+1]);}dfs(sum,count+1,nextt+num[count+1]);dfs(sum,count+1,nextt-num[count+1]);dfs(sum,count+1,nextt*num[count+1]);if(num[count+1]!=0&&nextt%num[count+1]==0){dfs(sum,count+1,nextt/num[count+1]);}
//	dfs(sum+nextt,count+1,num[count+1]);
//	dfs(sum-nextt,count+1,num[count+1]);
//	dfs(sum*nextt,count+1,num[count+1]);
//	if(sum%nextt==0&&nextt!=0)
//	{
//		dfs(sum/nextt,count+1,num[count+1]);
//	}
//	dfs(sum,count+1,nextt+num[count+1]);
//	dfs(sum,count+1,nextt-num[count+1]);
//	dfs(sum,count+1,nextt*num[count+1]);
//	if(nextt%num[count+1]==0&&num[count+1]!=0)
//	{
//		dfs(sum,count+1,nextt/num[count+1]);
//	}
}int main()
{while (~scanf("%s", s)){flag = 0;if (strlen(s) == 2)num[0] = 10;else{if (s[0] == 'A')num[0] = 1;else if (s[0] == 'J')num[0] = 11;else if (s[0] == 'Q')num[0] = 12;else if (s[0] == 'K')num[0] = 13;elsenum[0] = s[0] - '0';}for (int i = 1; i < 4; i++){scanf("%s", s);if (strlen(s) == 2)num[i] = 10;else{if (s[0] == 'A')num[i] = 1;else if (s[0] == 'J')num[i] = 11;else if (s[0] == 'Q')num[i] = 12;else if (s[0] == 'K')num[i] = 13;elsenum[i] = s[0] - '0';}}flag=0;sort(num,num+4);do{dfs(num[0],1,num[1]);}while(next_permutation(num,num+4)&&flag==0);if (flag == 1)printf("Yes\n");elseprintf("No\n");}return 0;
}

 

 

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

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

相关文章

82.删除排序链表中的重复元素II

给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,3,4,4,5] 输出&#xff1a;[1,2,5]示例 2&#xff1a; 输入&#xff1a;head [1,1,1,2…

贝尔曼方程【Bellman Equation】

强化学习笔记 主要基于b站西湖大学赵世钰老师的【强化学习的数学原理】课程&#xff0c;个人觉得赵老师的课件深入浅出&#xff0c;很适合入门. 第一章 强化学习基本概念 第二章 贝尔曼方程 文章目录 强化学习笔记一、状态值函数贝尔曼方程二、贝尔曼方程的向量形式三、动作值…

刷题28-30(力扣0322/0078/0221)

0322. 零钱兑换 题目&#xff1a; 给你一个整数数组 coins &#xff0c;表示不同面额的硬币&#xff1b;以及一个整数 amount &#xff0c;表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额&#xff0c;返回 -1 。你可以…

【微服务】Nacos配置管理

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;微服务 ⛺️稳中求进&#xff0c;晒太阳 Nacos除了可以做注册中心&#xff0c;同样可以做配置管理来使用。 1.统一配置管理 当微服务部署的实例越来越多&#xff0c;达到数十、数百时&am…

【C语言】对称密码——栅栏的加密和解密

栅栏密码的原理&#xff1a; 栅栏层数n ①把将要传递的信息中的字母交替排成上下n行。 ②再将下面每一行字母排依次在上面一行的后边&#xff0c;从而形成一段密码。 ③例如&#xff1a;栅栏层数为2 明文&#xff1a;THE LONGEST DAY MUST HAVE AN END 加密&#xff1a; …

DPDK-RCU的简明使用

文章目录 摘要RCU的基本概念DPDK RCU Library的使用其他 摘要 本文主要介绍DPDK中RCU Library的使用。 在使用这个库之前&#xff0c;我们先了解RCU的基本概念。 掌握RCU的基本概念后&#xff0c;便可轻松的使用这个库。 RCU的基本概念 参考&#xff1a;Linux内核同步机制之…

每天学习几道面试题|Kafka(二)架构设计类

文章目录 1. Kafka 是如何保证高可用性和容错性的&#xff1f;2. Kafka 的存储机制是怎样的&#xff1f;它是如何处理大量数据的&#xff1f;3. Kafka 如何处理消费者的消费速率低于生产者的生产速率&#xff1f;4. Kafka 集群中的 Controller 是什么&#xff1f;它的作用是什么…

深度学习模型部署-番外-TVM机器学习编译

什么是机器学习编译器/AI编译&#xff1f; 图片来自知乎大佬的文章 机器学习编译是指&#xff1a;将模型从训练形式转变为部署模式 训练模式&#xff1a;使用训练框架定义的模型部署模式&#xff1a;部署所需要的模式&#xff0c;包括模型每个步骤的实现代码&#xff0c;管理资…

什么是代理IP?TikTok运营需要知道的IP知识

对于运营TikTok的从业者来说&#xff0c;IP的重要性自然不言而喻。 在其他条件都正常的情况下&#xff0c;拥有一个稳定&#xff0c;纯净的IP&#xff0c;你的视频起始播放量很可能比别人高出不少&#xff0c;而劣质的IP轻则会限流&#xff0c;重则会封号。那么&#xff0c;如何…

插入排序+希尔排序

目录 插入排序&#xff1a; 希尔排序&#xff1a; 插入排序&#xff1a; 注意这里不要将插入排序和冒泡排序弄混&#xff1a; 插入排序是将数据不断放入前一个有序数列&#xff1a; // 插入排序 void InsertSort(int* a, int n) {for (int j 1; j < n; j){for (int i j;…

Java类的多态作用及解析

多态是面向对象编程中一个重要的特性。简单来说&#xff0c;多态就是指同一个方法在不同的对象上有不同的实现。通过多态&#xff0c;我们可以在运行时根据对象的实际类型来动态地调用相应的方法&#xff0c;从而提高代码的灵活性和可扩展性。 以下是 Java 类中多态的一些作用…

sobel算子详解

Sobel 算子是一种常用的边缘检测算子&#xff0c;它 可以在图像中检测出边缘的位置和方向。Sobel 算子结合了平滑和微分操作&#xff0c;能够有效地检测出图像中的边缘。 Sobel 算子原理&#xff1a; Sobel 算子使用两个 3x3 的卷积核&#xff08;一个用于检测水平边缘&…

如何用HBuider x网页制作蜡笔小新

目录 下载软件 ​编辑 一.制作蜡笔小新个人介绍界面 二.制作蜡笔小新我的偶像界面 三.制作蜡笔小新我的家乡界面 四.制作蜡笔小新会员注册界面 下载软件 一、HBuilder IDE的下载 HBuilder下载官网地址&#xff1a;http://www.pc6.com/mac/140609.htmlHBuilderX官方电脑版…

UpGrow评论:AI能将我的Instagram粉丝数增加10倍吗?

UpGrow Review: Can AI Grow My Instagram Followers 10X? 概述 UpGrow是一款专注于Instagram增长的AI驱动型社交媒体工具。它通过其庞大的300多人的网络&#xff0c;先进的定位功能&#xff0c;实时分析以及卓越的客户服务&#xff0c;帮助用户有机地增长Instagram关注者。…

Oracle锁表解决方案

一&#xff1a;查看完成等待事件的SQL select distinct a.sid, a.event, a.seconds_in_wait, a.wait_class, c.sql_text, c.SQL_ID, d.spid, b.OSUSER, b.USERNAME, d.program from gv$session_wait a, gv$session b, gv$sqlarea c, gv$process d where a.sid b.sid and a.st…

leetcode排列硬币

求根公式解法 public static int arrangeCoins(int n) {return (int) ((Math.sqrt((long) n * 8 1) - 1) / 2);} 二分法 暂未实现 牛顿迭代 暂未实现

【机器学习-07】逻辑回归(Logistic Regression)的介绍和python实现

Logistic Regression 虽然被称为回归&#xff0c;但其实际上是分类模型&#xff0c;并常用于二分类。主要用来表示某件事情发生的可能性&#xff0c;因此因变量的范围在 0 和 1 之间。Logistic Regression 因其简单、可并行化、可解释强深受工业界喜爱。例如&#xff0c;探讨引…

MyBatis配置文件详解

下面是一个典型的 MyBatis 配置文件 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configurat…

Acwing.1355 母亲的牛奶(BFS)

题目 农夫约翰有三个容量分别为 A,B,C升的挤奶桶。 最开始桶 A和桶 B都是空的&#xff0c;而桶 C里装满了牛奶。 有时&#xff0c;约翰会将牛奶从一个桶倒到另一个桶中&#xff0c;直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止。 这一过程中间不能有任何停顿&#xff0…

前端静态开发案例-基于H5C3开发的仿照视频网站的前端静态页面-2 样式表部分和效果展示

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;引用请注明原作者&#xff0c;严禁复制转载 charset "utf-8"; /* 程序员田宝宝原创版权所有&#xff0c;仿冒必究&#xff0c;该界面是仿照某视频网站官网开发的静态页面 */ …