题意:把一个多边形往里面连对角线,然后问每次添加多边形被划分为几个部分

产生的部分就是新加对角线与原有对角线相交条数+1,用线段树(大雾)维护一下。

 #include<bits/stdc++.h>
#define LL long long
#define N 100005
#define lowbit(x) x&(-x)
using namespace std;
inline LL ra()
{
LL x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
LL n,k;
struct node{
LL tag,sum,l,r;
}t[N<<];
LL T,ans=;
void build(LL k, LL l, LL r)
{
t[k].l=l; t[k].r=r;
if (l==r) return;
LL mid=l+r>>;
build(k<<,l,mid); build(k<<|,mid+,r);
}
void update(LL k)
{
t[k].sum=t[k<<].sum+t[k<<|].sum;
}
void pushdown(LL k)
{
LL tmp=t[k].tag; t[k].tag=;
t[k<<].tag+=tmp; t[k<<|].tag+=tmp;
t[k<<].sum+=(t[k<<].r-t[k<<].l+)*tmp;
t[k<<|].sum+=(t[k<<|].r-t[k<<|].l+)*tmp;
}
void change(LL k, LL x, LL y, LL val)
{
if (x>y || y>n) return;
LL l=t[k].l,r=t[k].r;
if (l==x && y==r)
{
t[k].tag+=val;
t[k].sum+=(r-l+)*val;
return;
}
if (t[k].tag) pushdown(k);
LL mid=l+r>>;
if (y<=mid) change(k<<,x,y,val);
else if (x>mid) change(k<<|,x,y,val);
else{
change(k<<,x,mid,val);
change(k<<|,mid+,y,val);
}
update(k);
}
LL ask(LL k, LL x, LL y)
{
if (x>y || y>n) return ;
LL l=t[k].l,r=t[k].r;
if (x==l && y==r) return t[k].sum;
if (t[k].tag) pushdown(k);
LL mid=l+r>>;
if (y<=mid) return ask(k<<,x,y);
else if (x>mid) return ask(k<<|,x,y);
else return ask(k<<,x,mid)+ask(k<<|,mid+,y);
}
int main()
{
LL last=,aim;
T=n=ra(); k=ra();
if (k>n/) k=n-k;
build(,,n);
while (T--)
{
LL aim=(last+k-)%n+;
if (aim>last)
{
ans+=ask(,last+,aim-)+;
change(,last,last,);
change(,aim,aim,);
}
else
{
ans+=ask(,last+,n)+ask(,,aim-)+;
change(,last,last,); change(,aim,aim,);
}
last=aim;
printf("%I64d ",ans);
// cout<<ask(2); system("pause");
}
return ;
}

cf 755D. PolandBall and Polygon的更多相关文章

  1. codeforces 755D. PolandBall and Polygon

    D. PolandBall and Polygon time limit per test 4 seconds memory limit per test 256 megabytes input st ...

  2. codeforces 755D. PolandBall and Polygon(线段树+思维)

    题目链接:http://codeforces.com/contest/755/problem/D 题意:一个n边形,从1号点开始,每次走到x+k的位置如果x+k>n则到x+k-n的位置,问每次留 ...

  3. CodeForces 755D PolandBall and Polygon ——(xjbg)

    每次连线,起点和终点之间,每一个被点亮的点,这些点都能连出去两条线,因此可以增加的块数+2(1这个点除外,因为只有连出的点没有连进的点),计算起点和终点之间有几个点被点亮即可,然后1这个点特判一下.感 ...

  4. 【codeforces 755D】PolandBall and Polygon

    time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  5. Codeforces 755D:PolandBall and Polygon(思维+线段树)

    http://codeforces.com/problemset/problem/755/D 题意:给出一个n正多边形,还有k,一开始从1出发,向第 1 + k 个点连一条边,然后以此类推,直到走完 ...

  6. D. PolandBall and Polygon BIT + 欧拉公式

    http://codeforces.com/contest/755/problem/D // 我也觉得非平面图不能用欧拉公式,但是也能过,不知道为什么.求大佬留言. 这题其实就是平面图,因为它有很多个 ...

  7. 【树状数组】Codeforces Round #755 D. PolandBall and Polygon

    http://codeforces.com/problemset/problem/755/D 每次新画一条对角线的时候,考虑其跨越了几条原有的对角线. 可以用树状数组区间修改点查询来维护多边形的顶点. ...

  8. CF EC 87 div2 1354 C2 Not So Simple Polygon Embedding 计算几何 结论

    LINK:Not So Simple Polygon Embedding 搞了好久终于搞会了. 错误原因 没找到合适算边长的方法 要么就是边长算的时候算错了. 几何学的太差了 最后虽然把十边形的和六边 ...

  9. ORA-00494: enqueue [CF] held for too long (more than 900 seconds) by 'inst 1, osid 5166'

    凌晨收到同事电话,反馈应用程序访问Oracle数据库时报错,当时现场现象确认: 1. 应用程序访问不了数据库,使用SQL Developer测试发现访问不了数据库.报ORA-12570 TNS:pac ...

随机推荐

  1. IdentityServer4专题之七:Authorization Code认证模式

    (1)identityserver4授权服务器端 public static class Config { public static IEnumerable<IdentityResource& ...

  2. word2010文档如何隐藏右侧灰色空白不可编辑区域

    word2010文档如何隐藏右侧灰色空白不可编辑区域, (word2007也是差不多的操作) 两种方法: 1.点击图中的“最终状态”按钮: 2.点击图中的”以嵌入方式显示所有修订“的按钮:

  3. iOS 十种线程锁

    锁 是什么意思? 我们在使用多线程的时候多个线程可能会访问同一块资源,这样就很容易引发数据错乱和数据安全等问题,这时候就需要我们保证每次只有一个线程访问这一块资源,锁 应运而生. 这里顺便提一下,上锁 ...

  4. java随机函数用法Random

     原文地址:http://blog.csdn.net/wpjava/article/details/6004492  import java.util.Random; public class Ran ...

  5. HDU3306-Another kind of Fibonacci(矩阵构造)

    Another kind of Fibonacci Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  6. [笔记]ul>li>a做分布时, 让其居中显示效果

    结构: <div id="page"> <ul> <li><a href="#">首页</a>< ...

  7. wx地址和腾讯地图

    如果只是要获取当前用户的经纬度和打开微信自带的地图 只需要 jsApiList: ["getLocation","openLocation"] // 先获得 w ...

  8. 018、Java中除法的是用,解决除法计算精度问题

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  9. 014.CI4框架CodeIgniter数据库操作之:查询数据库,并让数据以对象的方式返回查询结果

    01. 我们在CI4框架中的Model文件夹新建一个User_model.php的文件,使用的是getResultArray,表示并让数据以数组的方式返回查询结果,代码如下: <?php nam ...

  10. 文献阅读报告 - Social BiGAT + Cycle GAN

    原文文献 Social BiGAT : Kosaraju V, Sadeghian A, Martín-Martín R, et al. Social-BiGAT: Multimodal Trajec ...