1869: Mathematics and Geometry
这是郑州轻工业学校的一次校赛的校内选拔赛,看名字是计算几何 的题
题目地址:
http://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1869
Description
给你一个n,求方程 2x + y + 2z = n 解的个数,其中x, y, z, n 都是非负整数
**********************以下是我的思路********************************
最开始的时候,我是想要用双重循环来做。枚举 x 和 y ,结果是肯定的 TLE
{ /* 代码我就不拿出来丢人了*/ }
{ /*中间的胡思乱想略去*/}
最后我想到了把方程放到 3维 的直角坐标系中 ,2x + y + 2z = n 其实是一个平面,而问题的解可以转化为在 “第一卦限内平面上整数点的个数”
巧的是 y 的系数是 1。于是把平面向 XZ 平面内投影(得到一个三角形区域,在这个三角形区域内的整数点都是平面上的整数点的投影),然后计算
XZ 二维平面上的三角形区域内的点的个数就是解。(更巧的是 x 和 z 的系数也是一样的,这样的话平面内点的计数就成了从 1 到(n/2 +1)的连续和,
如果 x 和 z 的系数不一样,那么解也应该是某个等差数列的和)
再说明一下,因为 y 的系数是1 ,所以才有 ”在这个三角形区域内的整数点都是平面上的整数点的投影“ (x 和 z 都是整数,n也是 ,那么 y=n-2*(x+z) 也是整数)
# include <stdio.h>
typedef long long int LL;
LL n,ans;
int t;
int main(){
scanf("%d",&t);
for(int i=0;i<t;++i){
scanf("%lld",&n);
n=n/2+1;
if(n%2==0){
ans=n/2*(n+1);
}else{
ans=(n+1)/2*n;
}
printf("Case #%d: %lld\n",i+1,ans);
}
return 0;
}
1869: Mathematics and Geometry的更多相关文章
- 第八届郑州轻工业学院ACM(程序设计大赛)校内预选赛
郑州轻工业学院有一个大赛,把几个有趣的题目分享一下.下面是题目连接,喜欢了就点点... 斗破苍穹 礼上往来 统计人数 神の数 炉石传说 Mathematics and Geometry 马拉松后记 斗 ...
- php实现var_dump函数
<?php class VarDump { private static $isInLoop = false; private static $buffer = false; public st ...
- What Is Mathematics?
What Is Mathematics? The National Council of Teachers of Mathematics (NCTM), the world's largest org ...
- <<Differential Geometry of Curves and Surfaces>>笔记
<Differential Geometry of Curves and Surfaces> by Manfredo P. do Carmo real line Rinterval I== ...
- Mathematics for Computer Graphics数学在计算机图形学中的应用 [转]
最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=10509 [译]Mathematics for Computer Gra ...
- How to do Mathematics
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:匿名用户链接:http://www.zhihu.com/question/30087053/answer/47815698来源 ...
- Mathematics for Computer Graphics
Mathematics for Computer Graphics 最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=105 ...
- <Differential Geometry of Curves and Surfaces>(by Manfredo P. do Carmo) Notes
<Differential Geometry of Curves and Surfaces> by Manfredo P. do Carmo real line Rinterval I== ...
- How do I learn mathematics for machine learning?
https://www.quora.com/How-do-I-learn-mathematics-for-machine-learning How do I learn mathematics f ...
随机推荐
- Python遇到字符编码出问题的一个相对万能的办法
在使用Python做爬虫的过程中,经常遇到字符编码出问题的情况. UnicodeEncodeError: 'ascii' codec can't encode character u'\u6211' ...
- 版本控制工具比较-CVS,SVN,GIT
首先介绍几个版本控制软件相互比较的重要依据: a.版本库模型(Repository model):描述了多个源码版本库副本间的关系,有客户端/服务器和分布式两种模式.在客户端/服务器模式下,每一用户通 ...
- C可变参数的函数
我们实现一个简单的printf函数(可变参数) #include <stdio.h> #include <stdarg.h> void myprintf(const char ...
- Python标准模块--built-ins函数
1.Python内置函数 2.Python内置函数举例 2.1 数学运算 abs,计算绝对值: >>> abs(-1) 1 >>> abs(3) 3 round,四 ...
- Android数据存储之GreenDao 3.0 详解
前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...
- Troubleshooting:重新安装Vertica建库后无法启动
环境:RHEL6.5 + Vertica7.1.0-3 1.故障现象 2.重装集群 3.再次定位 4.解决问题 5.总结 1.故障现象 故障现象:Vertica集群安装成功,但是创建数据库后一直无法u ...
- 安卓第一次启动引导页使用ViewPager实现
我们在安装某个APP的时候,基本都会有一个引导页的提示,他们可以打广告,或者介绍新功能的加入和使用说明等.一般都支持滑动并且下面有几个点,显示共有多少页和当前图片的位置,在IOS上这个实现起来比较简单 ...
- 深入理解CSS动画animation
× 目录 [1]定义 [2]关键帧 [3]动画属性 [4]多值 [5]API 前面的话 transition过渡是通过初始和结束两个状态之间的平滑过渡实现简单动画的:而animation则是通过关键帧 ...
- JSTL标签 参考手册
前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...
- JavaScript jQuery 中定义数组与操作及jquery数组操作
首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...