模板综合

ctsc前例行砍手

可并堆、并查集 zoj2334

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <math.h>
#include <limits>
#include <set>
#include <map>
using namespace std;
#define SZ 666666
int ch[SZ][2],dis[SZ],v[SZ];
int merge(int a,int b)
{
    if(!a||!b) return a+b;
    if(v[a]<v[b]) swap(a,b);
    ch[a][1]=merge(ch[a][1],b);
    if(dis[ch[a][0]]<dis[ch[a][1]]) swap(ch[a][0],ch[a][1]);
    if(!ch[a][1]) dis[a]=0;
    else dis[a]=dis[ch[a][1]]+1;
    return a;
}
int pop(int a)
{
    int t=merge(ch[a][0],ch[a][1]);
    ch[a][0]=ch[a][1]=dis[a]=0;
    return t;
}
int ff[SZ],rot[SZ];
int gf(int x) {return ff[x]?ff[x]=gf(ff[x]):x;}
int n,m;
void sol()
{
    for(int i=1;i<=n;i++) scanf("%d",v+i), ch[i][0]=ch[i][1]=dis[i]=ff[i]=0, rot[i]=i;
    scanf("%d",&m);
    while(m--)
    {
        int a,b;
        scanf("%d%d",&a,&b);
        int ga=gf(a),gb=gf(b);
        if(ga==gb) {puts("-1"); continue;}
        v[rot[ga]]/=2; v[rot[gb]]/=2;
        int aa=merge(pop(rot[ga]),rot[ga]);
        int bb=merge(pop(rot[gb]),rot[gb]);
        rot[ga]=merge(aa,bb);
        ff[gb]=ga;
        printf("%d\n",v[rot[ga]]);
    }
}
int main()
{
    while(scanf("%d",&n)!=-1) sol();
}

cdq分治 bzoj1176

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <math.h>
#include <limits>
#include <set>
#include <map>
using namespace std;
int s,w,q=0,Q=0,ans[233333];
//tp=0 edit
//tp=1 query
//op: -1/1 for query
//    value for edit
struct cq {int x,y,op,tp,qid;}qs[233333];
bool operator < (cq a,cq b) {return a.x<b.x;}
int bits[2333333];
int sum(int x)
{
    int ans=0;
    for(;x>=1;x-=x&-x) ans+=bits[x];
    return ans;
}
void edit(int x,int y)
{
    for(;x<=w;x+=x&-x) bits[x]+=y;
}
void cdq(int l,int r)
{
    if(l>=r) return;
    int mid=(l+r)>>1;
    cdq(l,mid); cdq(mid+1,r);
    sort(qs+l,qs+mid+1);
    sort(qs+mid+1,qs+r+1);
    int cur=l;
    for(int i=mid+1;i<=r;i++)
    {
        if(qs[i].tp!=1) continue;
        int x=qs[i].x;
        while(cur<=mid&&qs[cur].x<=x)
        {
            if(qs[cur].tp==0) edit(qs[cur].y,qs[cur].op);
            ++cur;
        }
        ans[qs[i].qid]+=qs[i].op*sum(qs[i].y);
    }
    for(int i=l;i<cur;i++) if(qs[i].tp==0) edit(qs[i].y,-qs[i].op);
}
int main()
{
    scanf("%d%d",&s,&w);
    int o,a,b,c,d;
    while(1)
    {
        scanf("%d",&o);
        if(o==1)
        {
            scanf("%d%d%d",&a,&b,&c);
            ++q; qs[q].x=a; qs[q].y=b; qs[q].tp=0; qs[q].op=c;
        }
        else if(o==2)
        {
            scanf("%d%d%d%d",&a,&b,&c,&d);
            ++Q;
            ++q; qs[q].x=a-1; qs[q].y=b-1; qs[q].tp=1; qs[q].op=1; qs[q].qid=Q;
            ++q; qs[q].x=c; qs[q].y=b-1; qs[q].tp=1; qs[q].op=-1; qs[q].qid=Q;
            ++q; qs[q].x=a-1; qs[q].y=d; qs[q].tp=1; qs[q].op=-1; qs[q].qid=Q;
            ++q; qs[q].x=c; qs[q].y=d; qs[q].tp=1; qs[q].op=1; qs[q].qid=Q;
        }
        else break;
    }
    cdq(1,q);
    for(int i=1;i<=Q;i++) printf("%d\n",ans[i]);
}

二维线段树 bzoj1176

时间: 2024-08-07 08:37:57

模板综合的相关文章

大数分解,大数判定综合模板

通过poj1811整理这些算法的模板 所有代码如下: 1 #include <iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 using namespace std; 6 #define LL long long 7 const int maxs = 10000000+5; 8 //对于1要外加特判,否则会运行错误 9 //用小素数表做随机种子 10 __int64

UVA 12304 /// 圆的综合题 圆的模板

题目大意: ①给出三角形三个点,求三角形外接圆,求外接圆的圆心和半径. ②给出三角形三个点,求三角形内接圆,求内接圆的圆心和半径. ③给出一个圆,和一个点,求过该点的圆的切线与x轴的夹角(0<=angle<180): ④给出一条直线,一个点p,指定半径r,求经过点p的与直线相切的半径为r的圆: ⑤给出两条直线,求与这两条直线相切的圆: ⑥给出两个圆,求同时与这两个圆相切的圆: 贴一下圆的模板 带了一些注释 主要包括以下内容 // 求三角形abc的外接圆c(圆心.半径) C csC(P a,P

MVC与vue2概要、模板、数据绑定与综合示例(一)

一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.Vue是框架而jQuery则是库. 1.2.AMD与CMD 在传统的非模块化JavaScript开发中有许多问题:命名冲突.文件依赖.跨环境共享模块.性能优化.职责单一.模块的版本管理.jQuery等前端库层出不穷,前端代码日益膨胀 AMD规范及其代表:RequireJS异步模块定义(Asynchronous Module Definition),它是依

其他综合-VMware 从模板机快速克隆多台

1.实验描述 通过 CentOS 7.6 的模板机快速克隆,为实现搭建其他项目而提供干净的实验平台. [基于此文章的环境]点我快速打开文章 2.实验环境 使用软件的版本:VMware 15 Pro 3.实验工具 [VMware12&15][001-VMware 12&15]点我快速打开分享(若异常,请私信,万分感谢) [提取码:0rb9 ] [CentOS7.6][002-CentOS 7.6]点我快速打开分享(若异常,请私信,万分感谢) [提取码:9tri ] 4.实验步骤 4.1 创建

蓝色的oa模板html_综合信息服务管理平台OA模板——后台

链接:http://pan.baidu.com/s/1qXGGOAK 密码:2otu

综合案例-整合办公系统后台模块

综合案例-整合办公系统后台模块 1.配置虚拟主机(如www.think.com) 2.配置hosts文件并重启Apache服务器 3.复制ThinkPHP核心文件到项目的目录中(如think目录) 4.创建Zend工程 5.创建index.php入口文件(编写四步走) 6.划分项目前后台模块 设置配置文件(./Application/Common/Conf/config.php) 7.创建Public控制器并定义login方法 编写控制器三步走 8.设置URL调度模式 9.复制模板资源到Publ

ISE 设计、综合及仿真流程

终于指导完全国电设回家了,在家两星期时间里,除了把美食都重新过一遍外,计划做两件事,其中一件事就是学会Xilinx ISE软件.因为实验室都用的Xilinx的fpga芯片,因此要做好准备先学软件操作流程,现记下. 我安装了12.4版本,首先设计: 1.文件-->新建工程,命工程名,注意这个工程名就是文件夹的名字,然后next.选芯片.封装.速度.综合工具.仿真工具.语言等. 2.新建了工程后在工程管理器右键,new source添加文件.如果是verilog设计就选verilog module,

COJ 0981 WZJ的数据结构(负十九)树综合

WZJ的数据结构(负十九) 难度级别:E: 运行时间限制:15000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 WZJ的数据结构中有很多都是关于树的.这让很多练习模板的同学还要找来找去很不爽,于是WZJ跟小伙伴们一块商量如何将这些题汇拢到一块去: WZJ:为了大家简单,我规定一开始是一棵有根树. LZJ:那我一定得加上换根操作喽. XJR:链信息修改,链信息增加,链信息翻倍,维护链信息的最大,最小,总和肯定很好做. CHX:子树信息修改,子树信息增加,子树

拿出来分享了!VIP珍藏!!!全网最齐全的 DEDECMS模板 网盘地址!没有你找不到的!【第二篇】

拿出来分享了!VIP珍藏!!!全网最齐全的 DEDECMS模板 网盘地址!没有你找不到的! 模板类型最齐全: -------------优美的走起!---------- 五:DEDECMS模板--服装类模板列表: 织梦模板爱搭配服装行业dedecms门户模板下载.zip 35.25 MB昨天16:43VIP永久 服装行业dedecms模板.zip 138.09 KB昨天16:43VIP永久 织梦模板爱搭配服装行业dedecms门户模板下载.zip 35.25 MB昨天16:43VIP永久 201