博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
B - Cube HDU - 1220 (数学计数)
阅读量:4559 次
发布时间:2019-06-08

本文共 591 字,大约阅读时间需要 1 分钟。

题意:一个边长为N的正方体,切割成N*N*N个单位正方体,问有多少对正方体之间有0个,2个公共点。

思路:因为正方体之间出现公共点的情况有0,2,4. 那么直接正面求,肯定不好求,那么先求出有4个公共顶点的对数m。

   怎么求呢?通过观察,其实就是外面的一个面没有相邻小正方体,其他都相邻了,那就是总的小正方体的总面数-在表面的面数就可以了

   同时,求的是对数,所以最后不要忘了除以2.         公式  (N*N*N*6 - N*N*6)/3          在代码中只是把它化简了

#include
#define ll long longint main(){ ll N; while (scanf("%lld", &N) != EOF) { if (N == 1)printf("0\n"); else{ ll pop = N*N*(N - 1) * 3; ll n = N*N*N; ll ans = n*(n - 1) / 2 - pop; printf("%lld\n", ans); } }}

 

转载于:https://www.cnblogs.com/ALINGMAOMAO/p/9768619.html

你可能感兴趣的文章
Tomcat配置多线程和配置数据库连接池
查看>>
python解析oracle日志中的报错
查看>>
latex 去掉(不显示)空白页的页码与页眉
查看>>
Spring MyBatis多数据源分包
查看>>
HDOJ 1879 继续畅通工程
查看>>
spring Springmvc mybatis maven整合
查看>>
方法参数(值调用,引用调用)
查看>>
有名管道的非阻塞设置
查看>>
Git使用教程-idea系列中git使用教程
查看>>
diff.js 列表对比算法 源码分析
查看>>
模块运用,文件搜索
查看>>
基于托管C++的增删改查及异步回调小程序
查看>>
hdu 1811 Rank of Tetris
查看>>
56. Merge Intervals 57. Insert Interval *HARD*
查看>>
java 调整jvm堆大小上限
查看>>
浏览器全屏之requestFullScreen全屏与F11全屏
查看>>
软件包管理:rpm命令管理-安装升级与卸载
查看>>
旋转图像
查看>>
字符串中的数字(字符串、循环)
查看>>
15.select into
查看>>