CodeForces 755D PolandBall and Polygon ——(xjbg)
2024-09-05 08:15:22
每次连线,起点和终点之间,每一个被点亮的点,这些点都能连出去两条线,因此可以增加的块数+2(1这个点除外,因为只有连出的点没有连进的点),计算起点和终点之间有几个点被点亮即可,然后1这个点特判一下。感觉,可以用线段树维护。。不过这题还是有规律的,每转过一圈,两线之间的点数就会加1,然后O(n)扫一遍就行了。注意答案会爆int。
代码如下:
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + ;
typedef long long ll; int n,k; int main()
{
cin >> n >> k;
k = min(k,n-k);
int add = ;
int pos = ;
ll have = ;
for(int i=;i<=n;i++)
{
if(pos + k > n + )
{
add++;
have += add;
add++;
}
else have += add;
pos += k;
if(pos > n) pos -= n;
cout << have << " ";
}
puts("");
return ;
}
最新文章
- asp.net中http提交数据所遇到的那些坑
- 从零开始调用一个手机号归属地查询API
- Log4j 与 Logback的ConversionPattern对比
- JavaScript异步机制
- HDU 1166 敌兵布阵 (数状数组,或线段树)
- show processlist
- iOS 设置导航栏的颜色和导航栏上文字的颜色
- MIRO发票校验BAPI_INCOMINGINVOICE_CREATE (2013-01-23 10:01:29)
- 【Todo】【读书笔记】大数据Spark企业级实战版 &; Scala学习
- Mvc多级Views目录
- Struts2结合sitemesh3制作网站母版页面
- [BZOJ 1150] [CTSC2007] 数据备份Backup 【贪心 + 链表】
- jq原创弹出层折叠效果
- 错误: symbol lookup error: /usr/local/lib/libreadline.so.6: undefined symbol: PC
- AugularJS从入门到实践(一)
- Git使用详细教程(8):Git分支
- Laravel 5.7 使用 PHP artisan migrate 的问题
- goland 文件头自动注释
- FileProvider的使用及应用更新时提示:解析包出错、失败等问题
- ping不通公网ip时路由器设置