计蒜客 等边三角形 dfs
题目:
https://www.jisuanke.com/course/2291/182238
思路:
1.dfs(int a,int b,int c,int index)//a,b,c三条边的边长,index是数组的下标
从dfs(0,0,0,0)开始,每次选的长度可能加到a,也可能b,也可能c,
三种可能分别dfs:
dfs(a+len[index+1],b,c,index+1);
dfs(a,b+len[index+1],c,index+1);
dfs(a,b,c+len[index+1],index+1);
2.剪枝
数据太大的边直接结束递归,此题中因为是求等边三角形,对于所有边的和sum,除以三的值肯定是大于等于abc三条边的。
3.提取重复的运算
一开始我sum没有/3,而是在dfs里面/3判断,所以就TLE了。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<queue>
using namespace std;
//计蒜客 等边三角形
int len[],n;
bool ok;
int sum;
void dfs(int a,int b,int c,int index)//a,b,c三条边的边长,index是数组的下标
{
if(a>sum||b>sum||c>sum)//剪枝
return;
if(index>n)
return;
if(a==b&&b==c&&index==n)
{
ok=true;
return;
} if(ok)
return; {
dfs(a+len[index+],b,c,index+);
dfs(a,b+len[index+],c,index+);
dfs(a,b,c+len[index+],index+);
}
}
int main()
{
while(scanf("%d",&n)==)
{
sum=;
for(int i=;i<=n;++i)
{
scanf("%d",&len[i]);
sum+=len[i];
}
ok=false;
sum/=;
dfs(,,,);
if(ok)
printf("yes\n");
else
printf("no\n");
}
return ;
}
计蒜客 等边三角形 dfs的更多相关文章
- 计蒜客 踏青 dfs
题目: https://www.jisuanke.com/course/2291/182234 思路: 紫书P163联通块问题. 1.遍历所有块,找到草地,判断合法性,合法其id值加一,最后加出来的i ...
- 计蒜客-A1139 dfs
在一个 n \times mn×m 的方格地图上,某些方格上放置着炸弹.手动引爆一个炸弹以后,炸弹会把炸弹所在的行和列上的所有炸弹引爆,被引爆的炸弹又能引爆其他炸弹,这样连锁下去. 现在为了引爆地图上 ...
- 计蒜客的一道题dfs
这是我无聊时在计蒜客发现的一道题. 题意: 蒜头君有一天闲来无事和小萌一起玩游戏,游戏的内容是这样的:他们不知道从哪里找到了N根不同长度的木棍, 看谁能猜出这些木棍一共能拼出多少个不同的不等边三角形. ...
- 计蒜客 方程的解数 dfs
题目: https://www.jisuanke.com/course/2291/182237 思路: 来自:https://blog.csdn.net/qq_29980371/article/det ...
- 计蒜客 买书 dfs
题目: https://www.jisuanke.com/course/2291/182236 思路: 递归解决,从第一本书开始,每本书都有两种选择: //index是book里面每本书价格的下标, ...
- 计蒜客 NOIP 提高组模拟竞赛第一试 补记
计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n, ...
- [计蒜客] 矿石采集【记搜、Tarjan缩点+期望Dp】
Online Judge:计蒜客信息学3月提高组模拟赛 Label:记搜,TarJan缩点,树状数组,期望Dp 题解 整个题目由毫无关联的两个问题组合成: part1 问题:对于每个询问的起点终点,求 ...
- 计蒜客 作弊揭发者(string的应用)
鉴于我市拥堵的交通状况,市政交管部门经过听证决定在道路两侧安置自动停车收费系统.当车辆驶入车位,系统会通过配有的摄像头拍摄车辆画面,通过识别车牌上的数字.字母序列识别车牌,通过连接车管所车辆信息数据库 ...
- 计蒜客模拟赛5 D2T1 成绩统计
又到了一年一度的新生入学季了,清华和北大的计算机系同学都参加了同一场开学考试(因为两校兄弟情谊深厚嘛,来一场联考还是很正常的). 不幸的是,正当老师要统计大家的成绩时,世界上的所有计算机全部瘫痪了. ...
随机推荐
- 第一节. .Net Core环境的安装和常用指令
一. 环境介绍和安装 1. 环境介绍 .Net FrameWork框架:BCL(基础类库 system.dll).CLR(运行时 仅支持:Windows).FCL(一些框架,比如:MVC.WPF) . ...
- Knockoutjs 响应式计算研究
reactive programming https://en.wikipedia.org/wiki/Reactive_programming In computing, reactive progr ...
- Ubuntu18.04环境下melodic安装gmapping
Ubuntu18.04 环境下melodic中很多包没有提供sudo apt install的安装方式,需要通过源代码安装,安装方法如下: 1.先安装依赖库: sudo apt--dev sudo a ...
- PC端判断浏览器类型及移动端判断移动设备类型
浏览器代理检测,可以检测出来用户使用的浏览器类型,也可以检测浏览器所在的操作系统 navigator.userAgent (1).判断浏览器类型 var t = navigator.userAgent ...
- JAVA进阶19
1.冒泡排序 package cn.zh.abstrac; import java.util.Arrays; //冒泡排序 public class Demo019 { public static v ...
- Spring缓存注解@Cacheable
@Cacheable @Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 @Cacheable 作用和配置方法 参数 解释 example value 缓存的名称, ...
- 网站robots.txt & sitemap.xml
1. 如何查看网站的robots.txt 网址/robots.txt, 比如小米 https://www.mi.com/robots.txt sitemap.xml
- javascript任务队列
摘自:https://www.cnblogs.com/liangyin/p/9783342.html,谢谢作者分享! 任务队列 所有任务可以分成两种,一种是 同步任务(synchronous),另一种 ...
- http 四大特征
- iOS UINavigationController Class Translation
类 UINavigationController 一个容器视图控制器,定义了用于导航分层内容的基于堆栈的方案. 概述 导航控制器是一个在导航界面中,管理一个或多个子视图控制器的容器视图控制 ...