博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 2659 几何
阅读量:6394 次
发布时间:2019-06-23

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

首先考虑(0, 0)到(p, q)这条直线。

y = q / p * x。

sum{k = 0 to (p - 1) / 2} [q / p * k] 就是直线下方的点数。
sum{k = 0 to (q - 1) / 2} [p / q * k] 就是直线左方的点数。
如果gcd(p, q) = 1的话,这条直线上没有整点,所以不会重复计算。
相等的时候的数恰好是p * q 矩形的1/4。
答案当然是(p - 1) * (q - 1) / 4。//转自叉姐的话。。
/**************************************************************    Problem: 2659    User: BLADEVIL    Language: Pascal    Result: Accepted    Time:0 ms    Memory:220 kb****************************************************************/ //By BLADEVILvar    q, p                :int64;begin    read(q,p);    if p=q then        writeln(p*q div 4) else writeln((p-1)*(q-1) div 4);end.

 

转载于:https://www.cnblogs.com/BLADEVIL/p/3485852.html

你可能感兴趣的文章
文件系统管理 之 Linux 创建文件系统及挂载文件系统流程详解
查看>>
CSS选择器学习小结
查看>>
什么叫贸工技发展模式?什么叫技工贸发展模式?
查看>>
MyEclipse for Spring 10.0: GWT 2.1 and Spring Scaffolding
查看>>
水木-搜索引擎技术版
查看>>
yiStack平台维护
查看>>
oracle11g程序调优纪实
查看>>
webview页面和壳通信的库(精简版)
查看>>
手把手教你如何加入到github的开源世界! (转)
查看>>
NFS 配置服务
查看>>
iOS Swift编程语言
查看>>
Android 实现闹钟功能
查看>>
graal
查看>>
Win10 安装msi 提示2502、2503的错误代码 -- 命令提示符(管理员) -- msiexec /package...
查看>>
组策略脚本的趣味应用
查看>>
corosync+pacemaker高可用集群
查看>>
景安河南机房电力事故,部分主机和云服务器停机
查看>>
1024x600 7" LVDS LCD with Capacitive Touch for pcD
查看>>
解决ubuntu系统安装完后启动项里没有ubuntu的问题
查看>>
Objective-C中new与alloc/init的区别
查看>>