这是郑州轻工业学校的一次校赛的校内选拔赛,看名字是计算几何 的题

题目地址:

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的更多相关文章

  1. 第八届郑州轻工业学院ACM(程序设计大赛)校内预选赛

    郑州轻工业学院有一个大赛,把几个有趣的题目分享一下.下面是题目连接,喜欢了就点点... 斗破苍穹 礼上往来 统计人数 神の数 炉石传说 Mathematics and Geometry 马拉松后记 斗 ...

  2. php实现var_dump函数

    <?php class VarDump { private static $isInLoop = false; private static $buffer = false; public st ...

  3. What Is Mathematics?

    What Is Mathematics? The National Council of Teachers of Mathematics (NCTM), the world's largest org ...

  4. <<Differential Geometry of Curves and Surfaces>>笔记

    <Differential Geometry of Curves and Surfaces> by Manfredo P. do Carmo real line Rinterval I== ...

  5. Mathematics for Computer Graphics数学在计算机图形学中的应用 [转]

    最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=10509 [译]Mathematics for Computer Gra ...

  6. How to do Mathematics

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:匿名用户链接:http://www.zhihu.com/question/30087053/answer/47815698来源 ...

  7. Mathematics for Computer Graphics

    Mathematics for Computer Graphics 最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=105 ...

  8. <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== ...

  9. 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 ...

随机推荐

  1. Python遇到字符编码出问题的一个相对万能的办法

    在使用Python做爬虫的过程中,经常遇到字符编码出问题的情况. UnicodeEncodeError: 'ascii' codec can't encode character u'\u6211' ...

  2. 版本控制工具比较-CVS,SVN,GIT

    首先介绍几个版本控制软件相互比较的重要依据: a.版本库模型(Repository model):描述了多个源码版本库副本间的关系,有客户端/服务器和分布式两种模式.在客户端/服务器模式下,每一用户通 ...

  3. C可变参数的函数

    我们实现一个简单的printf函数(可变参数) #include <stdio.h> #include <stdarg.h> void myprintf(const char ...

  4. Python标准模块--built-ins函数

    1.Python内置函数 2.Python内置函数举例 2.1 数学运算 abs,计算绝对值: >>> abs(-1) 1 >>> abs(3) 3 round,四 ...

  5. Android数据存储之GreenDao 3.0 详解

    前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...

  6. Troubleshooting:重新安装Vertica建库后无法启动

    环境:RHEL6.5 + Vertica7.1.0-3 1.故障现象 2.重装集群 3.再次定位 4.解决问题 5.总结 1.故障现象 故障现象:Vertica集群安装成功,但是创建数据库后一直无法u ...

  7. 安卓第一次启动引导页使用ViewPager实现

    我们在安装某个APP的时候,基本都会有一个引导页的提示,他们可以打广告,或者介绍新功能的加入和使用说明等.一般都支持滑动并且下面有几个点,显示共有多少页和当前图片的位置,在IOS上这个实现起来比较简单 ...

  8. 深入理解CSS动画animation

    × 目录 [1]定义 [2]关键帧 [3]动画属性 [4]多值 [5]API 前面的话 transition过渡是通过初始和结束两个状态之间的平滑过渡实现简单动画的:而animation则是通过关键帧 ...

  9. JSTL标签 参考手册

    前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...

  10. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...