传送门:C - Count Triangles 

题意:给你四个数A,B,C,D,求有多少个三边为x,y,z (A ≤ x ≤ B ≤ y ≤ C ≤ z ≤ D)的三角形。

题解:枚举 x=A~B,然后计算当z的值大于等于C时,y为最小值B可以有多少个三角形,y为最大值C有多少个三角形。想想就可以发现 y=B~C时 其实就是一个差值为1的等差数列。然后要算出 y=B 和 y=C 时 z 比最大值D大了多少,这也是个等差数列,然后两个等差数列做差就好了。这么说可能有点乱,代码看了就明白了。

 1 #include<bits/stdc++.h>
2 #define ll long long
3 using namespace std;
4
5 int main()
6 {
7 ios::sync_with_stdio(false);
8 cin.tie(0);
9 cout.tie(0);
10 ll a,b,c,d;
11 cin>>a>>b>>c>>d;
12 ll ans=0;
13 for(ll i=a;i<=b;i++){
14 ll p=i+b-1;
15 ll q=i+c-1;
16 ll x=0,y=0,pp=0,qq=0;
17 if(p>=c) x=p-c+1;
18 if(q>=c) y=q-c+1;
19 if(p>d) pp=p-d;
20 if(q>d) qq=q-d;
21 ans=ans+(x+y)*abs(y-x+1)/2;
22 ans=ans-(pp+qq)*abs(qq-pp+1)/2;
23 }
24 cout<<ans<<endl;
25 return 0;
26 }

最新文章

  1. Block使用
  2. 解决VS2015启动时Package manager console崩溃的问题 - Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope
  3. session 实现保存用户信息
  4. Go安装
  5. minimum-number-of-arrows-to-burst-balloons(还挺好)
  6. 使用NSURLSession实现断点续传
  7. 分类: LINUX apache 访问设置配置
  8. Android 代码混淆
  9. hdu4770:Lights Against Dudely(回溯 + 修剪)
  10. eclipse中link方式安装插件
  11. 1x1的卷积核有什么作用
  12. Bean之间的关系
  13. 百度统计api获取数据
  14. BZOJ3029守卫者的挑战(概率dp)
  15. 虚拟机安装及配置(centOs7)
  16. win10搭建ftp服务器的操作方法【图文教程】
  17. 最最最最最基础的SQL Server
  18. 【题解】Luogu P3950 部落冲突
  19. hdu 3665Seaside(简单floyd)
  20. Shell脚本中点号+文件名的作用

热门文章

  1. WPF DataGrid与ListView性能对比与场景选择
  2. 对于k8s微服务的性能测试监控平台搭建
  3. 大厂面试官竟然这么爱问Kafka,一连八个Kafka问题把我问蒙了?
  4. Vue 组件内滚动条 滚到到底部
  5. Pycharm同时执行多个脚本文件
  6. 【Linux】nginx详细说明
  7. Py数据类型—列表,字典,元组
  8. 面对key数量多和区间查询低效问题:Hash索引趴窝,LSM树申请出场
  9. 提供一个HDFS内的文件的路径,对该文件进行创建和删除操作。如果文件所在目录不存在,则自动创建目录。
  10. RVA与FOA的转换