题目:2831: 小强的金字塔


题意就是给出A,B,C,R,L,然后求



这里其实用到扩展欧几里德。(基本上参照clj的解题报告才理解的)


分析:我们先来分析一般情况:


这里我们假设A<C和B<C,否则我们可以把它化成A<C,B<C的情况


我们令:,所以上式就等价于:


,如果,那么的值是1,否则为0


然后我们交换顺序:,由于,所以



推导过程:因为,所以,那么,进一步有:


,所以



令:


那么式子就转化为:




这样一看我们就交换了A,C了,也就是扩展欧几里德算法,详见金斌2009论文。


我们继续化简,发现又把问题转化成求: 和 


这样的话与上面同样的思路继续化简:对于比较简单,就不写过程了。


下面来说说的化简过程:




然后分析就完毕!


由于本题的数很大,要用高精度,用Python最好,因为一是Python高精度可以直接算,二是Python直接返回元组方便。


sum = lambda n : n*(n+1)/2
sqrtsum = lambda n : n*(n+1)*(2*n+1)/6 def f(a,b,c,r):
if r<0:
return [0]*3 if a>=c:
t=f(a%c,b,c,r)
a/=c
return [t[0]+a*sqrtsum(r),t[1]+a*sum(r),t[2]+a*a*sqrtsum(r)+2*a*t[0]] elif b>=c:
t=f(a,b%c,c,r)
b/=c
return [t[0]+b*sum(r),t[1]+b*(r+1),t[2]+b*b*(r+1)+2*b*t[1]] else:
if a==0:
return [0]*3
y=(a*r+b)/c
t=f(c,c-b-1,a,y-1)
ans=[y*sum(r)-(t[1]+t[2])/2,y*r-t[1],y*y*r-2*t[0]-t[1]]
return ans a,c,b,l,r=map(int,raw_input().split())
print f(a,b,c,r)[0]-f(a,b,c,l-1)[0]


典型题目一:SPOJ4717. Grid Points in a Triangle


题意:求满足 y <= ax / b and x <= n的整点个数,x,y,a,b,n都是非负的整数。


分析:实际上就是求:,就是上题的思路。


#include <iostream>
#include <stdio.h>
#include <string.h> using namespace std;
typedef long long LL; LL gcd(LL a,LL b)
{
return b? gcd(b,a%b):a;
} LL dfs(LL n,LL a,LL b)
{
LL t=n*(n+1)/2*(a/b);
a%=b;
if(a==0) return n+1+t;
LL d=a*n/b;
t+=(n+1)*(d+1)+d/a+1;
return t-dfs(d,b,a);
} int main()
{
LL t,n,a,b,p;
scanf("%lld",&t);
while(t--)
{
scanf("%lld%lld%lld",&n,&a,&b);
p=gcd(a,b);
printf("%lld\n",dfs(n,a/p,b/p));
}
return 0;
}


典型题目二:2013年ACM全国邀请赛南京赛区一题:http://icpc.njust.edu.cn/Local/1742


分析:本题比较难,其实方法跟上题差不多,要分析的过程更加复杂些。



BZOJ2831(小强的金字塔系列问题--区域整点数求法)的更多相关文章

  1. POJ 1265 /// 皮克定理+多边形边上整点数+多边形面积

    题目大意: 默认从零点开始 给定n次x y上的移动距离 组成一个n边形(可能为凹多边形) 输出其 内部整点数 边上整点数 面积 皮克定理 多边形面积s = 其内部整点in + 其边上整点li / 2 ...

  2. .NET Core 3 WPF MVVM框架 Prism系列之区域管理器

    本文将介绍如何在.NET Core3环境下使用MVVM框架Prism的使用区域管理器对于View的管理 一.区域管理器 我们在之前的Prism系列构建了一个标准式Prism项目,这篇文章将会讲解之前项 ...

  3. MVVM架构~knockoutjs系列之文本框数符长度动态统计功能

    返回目录 这个功能为什么要写呢,因为在之前做了一个前端的页面效果,使用JS写的,感觉很累,真的,对于一个文本框长度动态统计,你要写blur,press,down什么的事件,太麻烦了,这时,我想到了kn ...

  4. 剑指offer系列59---寻找丑数

    [题目]把只包含因子2.3和5的数称作丑数(Ugly Number). * 例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 解法一 ...

  5. COJ 0985 WZJ的数据结构(负十五)(限定区域不同数)

    传送门:http://oj.cnuschool.org.cn/oj/home/addSolution.htm?problemID=955 试题描述: CHX有一个问题想问问大家.给你一个长度为N的数列 ...

  6. CCF系列之有趣的数(201312-4)

    题目链接: http://115.28.138.223:81/view.page?opid=4 试题名称: 有趣的数 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 我们把一个 ...

  7. Codeforces 1036E Covered Points (线段覆盖的整点数)【计算几何】

    <题目链接> <转载于 >>>  > 题目大意: 在二维平面上给出n条不共线的线段(线段端点是整数),问这些线段总共覆盖到了多少个整数点. 解题分析: 用GC ...

  8. C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解  ...

  9. C#进阶系列——WebApi 接口参数不再困惑:传参详解

    前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方式方法,算是一个笔记,也希望能帮初学者少走弯路.本 ...

随机推荐

  1. 转载: Android开源库V - Layout:淘宝、天猫都在用的UI框架,赶紧用起来吧!

    阿里的UI库... 分析的很精辟... http://blog.csdn.net/carson_ho/article/details/71077193

  2. centos7 部署镜像仓库 harbor

    =============================================== 2018/4/16_第2次修改                       ccb_warlock 更新 ...

  3. nvm npm node.js的关系

    nvm   npm  node.js都是用来构建reactNativ的项目 nvm管理node.j和npm版本的 node.js管理reactNative开发中所需要的代码库的 npm管理对应node ...

  4. luoguP2735 电网 Electric Fences

    一道校内模拟赛遇见的题 ** 不会正解就真的很麻烦的 数学题 ** 有一种东西叫 皮克定理 发现的千古神犇: 姓名:George Alexander Pick(所以叫皮克定理呀 国籍:奥地利(蛤!竟然 ...

  5. WiFi无线连接真机进行Appium自动化测试方法

    有时需要测试APP 产品的耗电问题,但用自动化又面临了一个USB接电脑供电的问题,从而导致计算出来的功耗与手动跑,存在有很大的误差,因此可使用wifi无线连接到手机进行自动化测试,解决功耗问题. 前提 ...

  6. (四)Jsoup 获取 DOM 元素属性值

    第一节: Jsoup 获取 DOM 元素属性值 Jsoup获取DOM元素属性值 比如我们要获取博客的href属性值: 我们这时候就要用到Jsoup来获取属性的值 : 我们给下示例代码: package ...

  7. .NETCore Sqlserver下对Dapper的扩展支持

    这里我们自定义一个IServiceCollection的扩展,例如下面我的扩展 services.AddDapperContext(dapperoptions => { dapperoption ...

  8. HBase(七)Hbase过滤器

    一.过滤器(Filter) 基础API中的查询操作在面对大量数据的时候是非常苍白的,这里Hbase提供了高级的查询方法:Filter.Filter可以根据簇.列.版本等更多的条件来对数据进行过滤,基于 ...

  9. CRLF LF CR

    The Carriage Return (CR) character (0x0D, \r) moves the cursor to the beginning of the line without ...

  10. jquery插件使用记录

    1.imgPreview(图片预览功能插件) demo地址:http://james.padolsey.com/demos/imgPreview/full/