题意:一个长为n的木棍又n个长度为1的小木棍组成,但有一些小木棍是坏的,给出了那些位置上的小木棍是坏的,现在要把长木棍切割成4条,要求其中3条都是不包含坏木棍且长度和最大,而且这3条好木棍可以组成一个三角形,问有多少种切割方式。

解题思路:

首先可以很快的求出最短的坏木棍,接下来就会出现两种情况,假设砍掉的坏木棍节点分别为L和R;

1、L=1或R=n

这样剩下的三段是由一整段木棒截来,我们可以枚举最左边一段的长度,这样可以得到一个关于第二段木棍的不等式,稍微讨论一下即可。

由组成三角形的条件可知

(x1+n-x1-x2)>x2  得x2<n/2,同样可得x1<n/2

x1+x2>n-x1-x2  得x2>n/2-x1

即有  n/2-x1<x2<n/2

则符合条件的x2的个数为(n-1)/2-(n/2-x1)  //注意这里是小于不是小于等于,所以要多减个1

2、砍掉的坏木棍是中间的一截,这样的情况就很容易了,枚举即可。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;int l,r,x,n,m;
int ok(int a,int b,int c)
{if(a<b) swap(a,b);if(a<c) swap(a,c);if(b+c>a) return true;else return false;
}
long long calc2(int x,int y)
{long long tot=0;for(int i=1;i<x;i++)if(ok(i,x-i,y)) tot++;for(int i=1;i<y;i++)if(ok(i,y-i,x)) tot++;return tot;
}
long long calc1(int n)
{long long tot=0;for(int i=1;i<=n-2;i++) if(2*i<n) {tot+=(n-1)/2-(n/2-i);}return tot;
}
int main()
{while(scanf("%d%d",&n,&m)!=EOF){l=n,r=1;for(int i=1;i<=m;i++){scanf("%d",&x);l=min(l,x);r=max(r,x);}if(r==n) printf("%lld\n",calc1(l-1));else if(l==1)  printf("%lld\n",calc1(n-r));else printf("%lld\n",calc2(l-1,n-r));}return 0;
}

hdu 5203(枚举)相关推荐

  1. hdu 4681(枚举+dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4681 思路:首先预处理出串C在A,B中的所有的位置,然后从前向后求一次最长公共子序列,从后向前求一次最 ...

  2. hdu 4421(枚举+2-sat)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4421 思路:枚举32位bit,然后2-sat判断可行性,这里给出2-sat矛盾关系构图: 1.a&am ...

  3. hdu 3006 枚举集合可以产生的所有并集的集合

    http://acm.hdu.edu.cn/showproblem.php?pid=3006 刚买的CHERRY键盘 手感真好 可惜不习惯 写代码老是打错,一个题写了一上午,都是各种按错键DEBUG. ...

  4. hdu 2058 枚举区间和个数

    题意:       给你两个数n,m,意思是有一个序列长度n,他是1 2 3 4 ...n,然后让你输出所有连续和等于m的范围. 思路:       是个小水题,随便写几个数字就能发现规律了,我们可以 ...

  5. hdu 5504(枚举+找规律)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5504 官方题解: 注意先特判0 的情况:如果读入的数据有0 ,那么去掉所有的0 且最后答案和0 取一个 ...

  6. hdu 1692(枚举+剪枝)

    题意:给你一些井的信息,井中原有的水,当井中的水满足一定量后会被破坏并且这些水全部流入下一个井中,用多少能量能直接破坏这个井.然后问要想破坏第n口井至少要多少能量. 解题思路:这题首先是要找到从哪口井 ...

  7. 和项目组研究计算几何

    一,凸包 二维凸包:可用极角排序后每次倍增一个点看是否在栈顶两个点内侧,在内侧就加入栈,否则弹出一个.优化是在省去了计算极角的计算量,采用xy排序,从x最小倍增一遍求上边界,再从x最大反过来求下边界. ...

  8. hdu 5099 Comparison of Android versions 枚举题意

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5099 卡读题,实际上题目中表述的题意并不完整,所以要认真读并且加上一些现实的"常识" ...

  9. HDU 4763 Theme Section(KMP+枚举公共前后缀)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4763 题目大意: 给你一个字符串s,存在一个 子串E同时出现在前缀.中间.后缀,即EAEBE这种模式 ...

最新文章

  1. Android 经典欧美小游戏 guess who
  2. 自建邮件服务器给企业带来的商业价值
  3. Android --- 从相册中选择图片或者拍着选择图片遇到的问题
  4. python自动化工具哪个好用_10款好用的自动化测试工具推荐
  5. Xcode 的正确打开方式——Debugging
  6. PyODPS DataFrame:统一的数据查询语言
  7. iOS系统的特点-iOS为什么运行更流畅
  8. 单细胞分析Seurat使用相关的10个问题答疑精选!
  9. 进云仿美团外卖平台 v1.39源码
  10. 腾讯终于有动作了:国行版Switch快来了...
  11. 【报告分享】中国人工智能厂商全景报告.pdf(附下载链接)
  12. bmklocationmanager方法没有回调_关于node中的回调(必学)
  13. adobe pdf for linux,Linux PDF阅读软件Adobe Reader 9.5.5发布( for linux)
  14. 车轮轨迹原理_三张图告诉你倒车入库的原理
  15. 《人机交互技术》结课作业:界面调研报告交互界面设计快速原型设计(华科软院)
  16. img-polaroid_这个由AI驱动的宝丽来会散发出幼稚的图画而不是照片
  17. 【RC延迟电路与缓慢泄放电路 】 multisim 14.0仿真 参数计算
  18. 洛谷1967 火车运输 kruskal求最大生成树 倍增LCA维护最小值
  19. 第一个项目单个交换机接入网络
  20. cms织梦内容标签是哪个_CMS内容组织结构:树,构面,标签

热门文章

  1. 中奖名单 | 价值 199 的大数据平台研发课程幸运er
  2. webservice axis1.4生成客户端
  3. Educational Codeforces Round 32
  4. 从内容云到一云多屏 云计算助力传统媒体转型
  5. 代码中特殊的注释技术——TODO、FIXME和XXX的用处
  6. easyui datagrid 绑定json对象属性的属性
  7. 使用Sass预定义一些常用的样式,非常方便(转)
  8. freebsd 运维人员
  9. WEBMIN管理Centos5.2 or RedHat5.2以上版本时samba用户不能同步系统帐户
  10. engineering likes?