关闭

不同的点

标签: 编程
173人阅读 评论(0) 收藏 举报

【题目描述】
陶陶为了给一道平面几何题出数据,需要产生 N 个点(x[i],y[i])。已知 x,y 是由伪随机函数顺序产生,即:
X[i+1] = (X[i]*Ax+Bx+i) mod Cx (X[1], Ax,Bx,Cx 是事先给定的)
Y[i+1] = (Y[i]*Ay+By+i) mod Cy (Y[1], Ay,By,Cy 是事先给定的)
这样,就可以快速连续产生很多点坐标(X[i], Y[i])。
不幸的是,这样产生的点有可能有相同的,虽然这种几率很少,但严谨的陶陶不允许这种事发生。陶陶要求你帮助他解决最少要产生前多少项时,正好有 N 个不相同的点。
【输入格式】
第一行:一个整数 N
第二行:4 个整数 X[1]、 Ax、Bx、Cx
第三行:4 个整数 Y[1]、 Ay、By、Cy
【输出格式】
一个整数 M表示最少要连续产生 M 个点,正好有 N 个不相同的点。数据保证有答案。
【样例输入】
21
2 4 3 6
5 2 3 13
【样例输出】
24
【数据范围】
1<=N<=1,000,000, 其它所有数据都在[1…1,000,000,000]范围内。
【分析】
如果直接模拟会超时,故使用哈希优化。

const
  inf=1123357;
var
  i,n,xi,ax,bx,cx,yi,ay,by,cy,m:qword;
    xx,yy,h:array[0..inf]of qword;
procedure insert(x,y:qword);
var
  t,i:qword;
begin
  t:=(x*319+y*131) mod inf;
    while h[t]<>0 do begin
      i:=h[t];
        if (xx[i]=x)and(yy[i]=y) then exit;
        t:=(t+1) mod inf;
    end;
    inc(m);
    xx[m]:=x;yy[m]:=y;
    h[t]:=m;
end;
begin
  readln(n);
    readln(xi,ax,bx,cx);
    readln(yi,ay,by,cy);
    fillchar(h,sizeof(h),0);
    m:=0;
    i:=1;
    insert(xi,yi);
    while m<n do begin
      xi:=(xi*ax+bx+i) mod cx;
      yi:=(yi*ay+by+i) mod cy;
        insert(xi,yi);
      inc(i);
    end;
    write(i);
end.
3
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

同一个点在不同坐标系下的坐标变换关

假设:2个坐标系分别为A、B,有点P。 其中变换矩阵 R 由三列构成, 第一列为坐标系 B 的 x 轴相对于坐标系 A 的描 其中变换矩阵 R 由三列构成, 第一列为坐标系 B 的 x ...
  • u011906844
  • u011906844
  • 2017-01-18 20:10
  • 695

【计算几何】点与向量的表示

来自大白书的模板:点的定义:struct Point { double x,y; Point (double x=0, double y=0):x(x),y(y) { } };向量的定...
  • Array98
  • Array98
  • 2015-03-21 11:06
  • 331

做点不同的事情

人有悲欢离合,月有阴晴圆缺;在工作中时常会遇到低谷时期,当疲惫了、烦躁于当前工作的时候,喝多少杯咖啡都不管用。常常,在这种状态下我们所能做的就是:随它去吧,于是,随意浏览网页、发呆、胡思乱想,任美好的...
  • Since20140504
  • Since20140504
  • 2015-10-19 18:02
  • 504

图片随机小角度堆叠效果,可用于相册缩略图叠加样式【长宽最优化】

最近项目需求实现一个类似的图片堆叠效果,用于相册的封面展示效果,让用户一眼就可以看出里面其实涵盖了多张图片。原理当然是图片随着中心点旋转,多次随机旋转并绘制到Canvas上,如果直接旋转bitmap你...
  • tyyj90
  • tyyj90
  • 2015-07-18 16:27
  • 1021

使用matplotlib画散点图

matplotlib中画散点图的方法是scatter,使用plt.scatter(x,y,c = 'r',s = 50,alpha = 1)可以画出散点图,以上scatter中的几个参数是比较常用的参...
  • baidu_36161077
  • baidu_36161077
  • 2017-07-06 16:01
  • 1080

JS图像映射的应用,在一个图片点击或移动到不同位置有不同响应

JS图像映射的应用,在一个图片点击或移动到不同位置有不同响应 function writeText(txt) { ...
  • dongzhongyan
  • dongzhongyan
  • 2017-02-21 11:12
  • 753

srcset属性实现响应式图片

最近做公司移动端页面切图时,思考了下,设计师给的1x到3x的图片,以前没考虑过,直接就rem单位,按设计图尺寸切好,一张图,一个固定rem单位,用遍了所有设备, 事实,在做页面适配测试的时候,还是会...
  • qq_34986769
  • qq_34986769
  • 2017-03-07 12:08
  • 264

【GDOI2017模拟二试4.12】树上路径(点剖)

Description给定一颗n个结点的无根树,树上的每个点有一个非负整数点权,定义一条路径的价值为路径上的点权和-路径的点权最大值。 给定参数p,我们想知道,有多少不同的树上简单路径,满足它的价值...
  • doyouseeman
  • doyouseeman
  • 2017-04-16 09:02
  • 375

两种不同的点九图片

1.图一 2.图二 其中图一,作为背景或者图片是可以伸展开的, 而图二,怎么做都和边框有间隙 ===========================================...
  • perfectnihil
  • perfectnihil
  • 2017-11-01 16:09
  • 36

<一> cocos2dx不同的坐标系,锚点

山东省
  • liuhong135541
  • liuhong135541
  • 2014-04-10 10:35
  • 3008
    个人资料
    • 访问:227864次
    • 积分:3663
    • 等级:
    • 排名:第10304名
    • 原创:176篇
    • 转载:22篇
    • 译文:0篇
    • 评论:18条
    个人主页
    www.jrxblog.top 欢迎访问&交换友链!
    博客专栏