2020.5.5集训总结

基于CrossSim的存储硬件原型机ANN仿真:MNIST手写数字识别实现与分析 本项目基于CrossSim仿真平台,在存储硬件原型机上实现了MNIST手写数字识别的ANN模型。通过搭建CrossSim仿真环境,设计传统ANN基准模型和考虑硬件非理想特性的CrossSim模型,对比分析了不同配置下的识别性能。实验结果表明,在引入硬件噪声和器件变异的情况下,模型准确率仍能达到95%以上,验证了存储内计算架构的可行性。研究为存储硬件与计算单元融合提供了实验依据,展示了CrossSim在神经形态计算系统仿真中的实用价值。 阅读详情

咕的时间真长

T1

P4847 银河英雄传说V2

fhq treapfhq\ treapfhq treap入门题

M就合并
D就拆开
Q就把那一段拎出来输出sumsumsum就好

#include <bits/stdc++.h>
using namespace std;

# define Rep(i,a,b) for(int i=a;i<=b;i++)
# define _Rep(i,a,b) for(int i=a;i>=b;i--)
# define RepG(i,u) for(int i=head[u];~i;i=e[i].next)

typedef long long ll;

const int N=2e5+5;

template<typename T> void read(T &x){
   x=0;int f=1;
   char c=getchar();
   for(;!isdigit(c);c=getchar())if(c=='-')f=-1;
   for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+c-'0';
    x*=f;
}

int n,m;
int fa[N],son[N][2],siz[N],val[N],treap[N];
ll sum[N];
int rt,a,b,c;

void update(int x){
    siz[x]=siz[son[x][0]]+siz[son[x][1]]+1;
    sum[x]=sum[son[x][0]]+sum[son[x][1]]+val[x];
    if(son[x][0])fa[son[x][0]]=x;
    if(son[x][1])fa[son[x][1]]=x;
    if(son[fa[x]][0]!=x&&son[fa[x]][1]!=x)fa[x]=0;
}

int merge(int u,int v){
    if(!u||!v)return u|v;
    int rt;
    if(treap[u]<treap[v])son[rt=u][1]=merge(son[u][1],v);
    else son[rt=v][0]=merge(u,son[v][0]);
    return update(rt),rt;
}

void split(int o,int &u,int &v,int k){
    if(!o){u=v=0;return;}
    int rank=siz[son[o][0]]+1;
    if(rank<=k)split(son[u=o][1],son[o][1],v,k-rank);
    else split(son[v=o][0],u,son[o][0],k);
    update(o);
}

int getfa(int x){
    while(fa[x])x=fa[x];
    return x;
}

int rnk(int x){
    int res=siz[son[x][0]]+1;
    while(fa[x]){
        if(son[fa[x]][1]==x)res+=siz[son[fa[x]][0]]+1;
        x=fa[x];
    }
    return res;
}

int main()
{
    srand(19260817);
    read(n),read(m);
    Rep(i,1,n){
        read(val[i]);
        sum[i]=val[i];
        fa[i]=son[i][0]=son[i][1]=0;
        siz[i]=1;
        treap[i]=rand();
    }
    Rep(i,1,m){
        char opt[10];
        int x,y;
        scanf("%s",opt);
        read(x);
        if(opt[0]=='M'){
            read(y);
            x=getfa(x),y=getfa(y);
            if(x!=y)merge(y,x);
        }
        if(opt[0]=='D'){
            int fx=getfa(x),rank=rnk(x);
            split(fx,a,b,rank-1);
        }   
        if(opt[0]=='Q'){
            read(y);
            int fx=getfa(x),fy=getfa(y);
            if(fx!=fy){puts("-1");continue;}
            int rx=rnk(x),ry=rnk(y);
            if(rx>ry)swap(rx,ry);
            split(fx,a,c,ry);
            split(a,a,b,rx-1);
            printf("%lld\n",sum[b]);
            merge(merge(a,b),c);
        }
    }
    return 0;
}

T2

P4036 [JSOI2008]火星人

恶心的题
判断两个字符串是否相同,可以哈希
插入需要平衡树
那么怎么找长度呢?二分一下长度就可以

然后这题还卡常…吸氧过的

#include <bits/stdc++.h>
using namespace std;

# define Rep(i,a,b) for(int i=a;i<=b;i++)
# define _Rep(i,a,b) for(int i=a;i>=b;i--)
# define RepG(i,u) for(int i=head[u];~i;i=e[i].next)

typedef long long ll;

const int N=1e5+5;

template<typename T> void read(T &x){
   x=0;int f=1;
   char c=getchar();
   for(;!isdigit(c);c=getchar())if(c=='-')f=-1;
   for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+c-'0';
    x*=f;
}

typedef unsigned int ull;
const int base=29;

int n,m;
char s[N];
int son[N][2],siz[N],val[N],treap[N];
ull haxi[N],poww[N];
int rt,tot;

int newnode(int value){
    int u=++tot;
    siz[u]=1,treap[u]=rand();
    haxi[u]=val[u]=value;
    return u;
}

void update(int x){
    siz[x]=siz[son[x][0]]+siz[son[x][1]]+1;
    haxi[x]=haxi[son[x][0]]*poww[siz[son[x][1]]+1]+val[x]*poww[siz[son[x][1]]]+haxi[son[x][1]];
}

int merge(int u,int v){
    if(!u||!v)return u|v;
    int rt;
    if(treap[u]<treap[v])son[rt=u][1]=merge(son[u][1],v);
    else son[rt=v][0]=merge(u,son[v][0]);
    return update(rt),rt;
}

void split(int o,int &u,int &v,int k){
    if(!o){u=v=0;return;}
    int rank=siz[son[o][0]]+1;
    if(rank<=k)split(son[u=o][1],son[o][1],v,k-rank);
    else split(son[v=o][0],u,son[o][0],k);
    update(o);
}

ull gethash(int l,int r){
    int x,y,z;
    split(rt,x,z,r);
    split(x,x,y,l-1);
    ull res=haxi[y];
    rt=merge(merge(x,y),z);
    return res;
}

int main()
{
    srand(19260817);
    poww[0]=1;
    Rep(i,1,1e5)poww[i]=poww[i-1]*base;
    scanf("%s",s+1);
    n=strlen(s+1);
    Rep(i,1,n)rt=merge(rt,newnode(s[i]-'a'));
    read(m);
    Rep(i,1,m){
        char opt[10];
        scanf("%s",opt);
        if(opt[0]=='Q'){
            int x,y;
            read(x),read(y);
            if(x>y)swap(x,y);
            int l=1,r=siz[rt]-y+1,res=0;
            while(l<=r){
                int mid=l+r>>1;
                if(gethash(x,x+mid-1)==gethash(y,y+mid-1))res=mid,l=mid+1;
                else r=mid-1;
            }
            printf("%d\n",res);
        } 
        if(opt[0]=='R'){
            int x,y,z;read(x);
            char ch;cin>>ch;
            int pos=x,value=ch-'a';
            split(rt,x,z,pos);
            split(x,x,y,pos-1);
            haxi[y]=val[y]=value;
            rt=merge(merge(x,y),z);
        }
        if(opt[0]=='I'){
            int x,y;read(x);
            char ch;cin>>ch;
            int k=x,val=ch-'a';
            split(rt,x,y,k);
            rt=merge(merge(x,newnode(val)),y);
        }
    }
    return 0;
}

T3

P3224 [HNOI2012]永无乡

其实可以线段树合并,为啥一个log⁡\loglog比平衡树套启发式合并还快呢/kk

#include <bits/stdc++.h>
using namespace std;

# define Rep(i,a,b) for(int i=a;i<=b;i++)
# define _Rep(i,a,b) for(int i=a;i>=b;i--)
# define RepG(i,u) for(int i=head[u];~i;i=e[i].next)

typedef long long ll;

const int N=1e5+5;

template<typename T> void read(T &x){
   x=0;int f=1;
   char c=getchar();
   for(;!isdigit(c);c=getchar())if(c=='-')f=-1;
   for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+c-'0';
    x*=f;
}

int n,m,q;
int son[N][2],siz[N],val[N],treap[N],num[N];
int fa[N],root[N];

int find(int x){
    if(fa[x]==x)return x;
    return fa[x]=find(fa[x]);
}

void update(int x){
    siz[x]=siz[son[x][0]]+siz[son[x][1]]+1;
}

int merge(int u,int v){
    if(!u||!v)return u|v;
    int rt;
    if(treap[u]<treap[v])son[rt=u][1]=merge(son[u][1],v);
    else son[rt=v][0]=merge(u,son[v][0]);
    return update(rt),rt;
}

void split(int o,int &u,int &v,int k){// split by val
    if(!o){u=v=0;return;}
    if(val[o]<=k)split(son[u=o][1],son[o][1],v,k);
    else split(son[v=o][0],u,son[o][0],k);
    update(o);
}

int kth(int u,int k){
    while(1){
        if(siz[son[u][0]]>=k)u=son[u][0];
        else if(siz[son[u][0]]+1>=k)return num[u];
        else k-=siz[son[u][0]]+1,u=son[u][1];
    }
}

void ins(int &rt,int id){
    int rx,ry;
    split(rt,rx,ry,val[id]);
    // printf("%d %d\n",rt,siz[rt]);
    rt=merge(merge(rx,id),ry);
    // printf("%d %d\n",rt,siz[rt]);
}

void dfs(int u,int x){
    if(son[u][0])dfs(son[u][0],x);
    if(son[u][1])dfs(son[u][1],x);
    son[u][0]=son[u][1]=0;
    siz[u]=1;
    ins(root[x],u);
}

int main()
{
    srand(19260817);
    read(n),read(m);
    Rep(i,1,n){
        read(val[i]);
        siz[i]=1;
        son[i][0]=son[i][1]=0;
        treap[i]=rand();
        fa[i]=root[i]=num[i]=i;
    }
    Rep(i,1,m){
        int x,y;
        read(x),read(y);
        x=find(x),y=find(y);
        if(x==y)continue;
        if(siz[root[x]]<siz[root[y]])swap(x,y);
        dfs(root[y],x);
        fa[y]=x,root[y]=root[x];
    }
    read(q);
    Rep(i,1,q){
        char opt[10];
        int x,y;
        scanf("%s",opt);
        read(x),read(y);
        if(opt[0]=='Q'){
            x=find(x);
            if(siz[root[x]]<y)puts("-1");
            else printf("%d\n",kth(root[x],y));
        }
        else{
            x=find(x),y=find(y);
            if(x==y)continue;
            if(siz[root[x]]<siz[root[y]])swap(x,y);
            dfs(root[y],x);
            fa[y]=x,root[y]=root[x];
        }
    }
    return 0;
}

T4

P3991 [BJOI2017]喷式水战改

很有意思的题
直接粘在luogu上的题解了

这题其实想清楚还是挺好写的,代码连100行都不到

首先考虑如果没有插入操作,就给定一个序列怎么做,那就是一个非常简单的一维(二维?)dpdpdp,我们用fi,jf_{i,j}fi,j​表示第iii个点当做第jjj个区间来使用(为了方便,我们把四个区间标记成0,1,2,30,1,2,30,1,2,3),其中000和333的价格是完全相同的。那么转移就是

fi,j=max⁡{fi−1,k+val},k≤jf_{i,j}=\max\{f_{i-1,k}+val\},k\leq jfi,j​=max{fi−1,k​+val},k≤j

然后我们会到原题里面,有插入操作,显然想到平衡树

那么我们一个类似这样的dpdpdp搬到平衡树上就好了

我们用$f[u] _{i,j} 表示平衡树上编号为表示平衡树上编号为表示平衡树上编号为u的节点当他代表的是的节点当他代表的是的节点当他代表的是[i,j]$这两个工作模式的时候的最大方法(两段可以不选)

那么我们就只需要改一下updateupdateupdate的写法就可以,转移就是

f[u]i,k=max⁡{f[lc]i,j+val[u]j+f[rc]j,k}f[u]_{i,k}=\max\{f[lc]_{i,j}+val[u]_j+f[rc]_{j,k}\}f[u]i,k​=max{f[lc]i,j​+val[u]j​+f[rc]j,k​}

貌似没有ClCN姐姐的那么麻烦?(

但是这题还有一个恶心的地方就是有nnn次操作,每次插入xxx个数,最差的时候会插入101410^{14}1014个数,炸飞了

怎么呢?我们可以用ODT的思想把连续一段相同的合并到一个点上

每次插入的时候判断一下,如果插到了一个点的中间,就需要把这个点拆成两个

那么可以发现每次插入的时候最多多三个点,如果开空间回收只用开333倍空间就可以,不开444倍也够了,当然我为了保险开了555倍

那么我们最后的复杂度就是O(64nlog⁡n)O(64n\log n)O(64nlogn),时限三秒可以通过(因为646464还比较大所以单独写出来了)

当然因为需要拆点还有一点点小细节

比如说我们怎么确定我们要插入的这个点位于哪个序列里面呢?我们split按什么split呢?

可以按照平衡树上的节点数siz进行split,也可以按照实际上的燃料数sum进行split,当然可以两次分别split一下,但是其实是没有必要的

我们应该选择按照第一种方法,平衡树上的节点数进行split

为什么呢?比如说我们把ppp所在的点按照sum拆出来了,那么从哪里把这个点劈成两半呢?我们不知道

但是如果按照siz拆出来,我们是可以利用siz表示出sum的,所以我们应该按照siz进行split

那么我们可以根据sum上的排名(已知)去找siz上的排名,然后根据排名split

然后特判插入的位置在末尾的情况,再还原就可以了

当然,开了longlong之后,记得输出%lld

本来写了个没啥用的空间回收,后来为了把代码卡进100行给删了

为啥删掉空间回收还变慢了500ms呢

最后卡到95行的代码:

#include <bits/stdc++.h>
using namespace std;

# define Rep(i,a,b) for(int i=a;i<=b;i++)
# define _Rep(i,a,b) for(int i=a;i>=b;i--)
# define RepG(i,u) for(int i=head[u];~i;i=e[i].next)

typedef long long ll;

const int N=5e5+5;

template<typename T> void read(T &x){
   x=0;int f=1;
   char c=getchar();
   for(;!isdigit(c);c=getchar())if(c=='-')f=-1;
   for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+c-'0';
    x*=f;
}

int n;
int son[N][2],treap[N],val[N][4],len[N],siz[N];
ll sum[N],f[N][4][4];
ll ans;
int rt,tot;
int bin[N],top;

void update(int x){
    memset(f[x],0,sizeof(f[x]));
    Rep(i,0,3)
        Rep(j,i,3)
            Rep(k,j,3)
                f[x][i][k]=max(f[x][i][k],f[son[x][0]][i][j]+1ll*val[x][j]*len[x]+f[son[x][1]][j][k]);
    sum[x]=sum[son[x][0]]+sum[son[x][1]]+len[x];
    siz[x]=siz[son[x][0]]+siz[son[x][1]]+1;
}

void split(int o,int &u,int &v,int k){
    if(!o){u=v=0;return;}
    int rank=siz[son[o][0]]+1;
    if(rank<=k)split(son[u=o][1],son[o][1],v,k-rank);
    else split(son[v=o][0],u,son[o][0],k);
    update(o);
}   

int merge(int u,int v){
    if(!u||!v)return u|v;
    int rt;
    if(treap[u]<treap[v])son[rt=u][1]=merge(son[u][1],v);
    else son[rt=v][0]=merge(u,son[v][0]);
    return update(rt),rt;
}

int rnk(ll k){
    int u=rt,res=0;
    while(u){
        if(sum[son[u][0]]>=k)u=son[u][0];
        else if(sum[son[u][0]]+len[u]>=k)return res+siz[son[u][0]]+1;
        else k-=sum[son[u][0]]+len[u],res+=siz[son[u][0]]+1,u=son[u][1];
    }
    return res;
}

int main()
{
    srand(19260817);
    read(n);
    Rep(i,1,n){
        ll p,x;
        int u=++tot;
        read(p),read(val[u][0]),read(val[u][1]),read(val[u][2]),read(x),val[u][3]=val[u][0];
        int rank=rnk(p);
        int lef,mid,rht;
        split(rt,lef,rht,rank);
        split(lef,lef,mid,rank-1);
        siz[u]=1,sum[u]=len[u]=x;
        son[u][0]=son[u][1]=0;
        treap[u]=rand();
        update(u);
        if(sum[lef]+len[mid]==p)rt=merge(merge(lef,mid),merge(u,rht));
        else{
            int l=++tot,r=++tot;
            Rep(i,0,3)val[l][i]=val[r][i]=val[mid][i];
            siz[l]=siz[r]=mid;
            son[l][0]=son[r][0]=son[l][1]=son[r][1]=0;
            sum[l]=len[l]=p-sum[lef];
            sum[r]=len[r]=sum[lef]+sum[mid]-p;
            treap[l]=rand(),treap[r]=rand();
            update(l),update(r);
            rt=merge(merge(lef,merge(l,u)),merge(r,rht));
        }
        printf("%lld\n",f[rt][0][3]-ans);
        ans=f[rt][0][3];
    }
    return 0;
}
寻路最终版哦 相信大家用unity3d寻路的时候,一定会碰到多人 阅读详情

相关推荐

ubuntu 20.04系统离线安装nfs

ubuntu环境下,离线安装nfs

m0_62464865的博客 2240

2020牛客寒假算法基础集训营5 题目及解析

传送门:2020牛客寒假算法基础集训营5 由于是个人总结向,所以有点精简,而且可能和官方的标程截然不同,当然如果有什么疑问可以留言或者私信交流。 文章目录A. 模板B. 牛牛战队的比赛地C. C语言IDED. 牛牛与牛妹的约会E. Enjoy the gameF. 碎碎念H. HashI. I题是个签到题J. 牛牛战队的秀场 A. 模板 思路: 签到题吧,名字起的吓人,楞是先交了...

放荡者的茶会 1654

RseQC实战指南:从安装到RNA-Seq数据质控全流程解析

本文提供了一份详尽的RseQC实战指南,涵盖从安装配置到RNA-Seq数据质控的全流程。文章重点解析了RseQC作为专业质控工具的核心价值,手把手指导如何通过Conda或pip完成安装,并深入讲解了bam_stat.py、geneBody_coverage.py等关键模块的使用方法与结果解读技巧,帮助用户有效评估RNA完整性、文库构建质量及链特异性,确保下游分析的可靠性。

weixin_29200741的博客 198

2020牛客国庆集训派对day5

2020牛客国庆集训派对day5 题目 A B C D E F G H I J K L M N solved - - ✔ ???? - - ✔ - - - ✔ - - - ✔:比赛时通过;????:赛后通过;⚪:比赛时尝试了未通过;-:比赛时未尝试

lllllan 293

农经权二轮延包—地块示意图生成

本文介绍了地块示意图制作软件的使用方法及模板制作要点。软件通过设置六个参数(示意图模板、属性数据、地块DBF、导航图、地块图片及存放位置)自动生成Word文档,并可导出PDF。文章详细说明了5页Word模板的制作过程,包括页脚三栏设置和页码插入技巧,支持每户最多28个地块的情况。同时指出该软件生成的图片分辨率(300dpi)满足清晰度要求,并提及软件免费提供插件但收费提供后续服务。

weixin_47364423的博客 1108

多核系统核间通信(IPC)设计:从硬件机制到软件实现

在多核处理器与嵌入式系统设计中,核间通信(IPC)是实现计算资源协同工作的核心技术。其原理基于共享内存、硬件邮箱与中断等底层硬件机制,通过构建结构化的消息传递通道,实现核间高效、可靠的数据交换。该技术的核心价值在于打破多核间的壁垒,将分散的计算单元整合为有机整体,从而显著提升系统整体性能与响应能力。在工程实践中,IPC广泛应用于智能座舱、边缘AI网关、实时控制系统等场景,用于处理如仪表显示、AI推理、实时控制等复杂任务。本文聚焦于基于共享内存与VRING的消息队列实现,深入剖析缓存一致性、内存屏障等关键问题

weixin_27006759的博客 591

2020牛客国庆集训派对day5 B.Hyperdrome

2020牛客国庆集训派对day5 B.Hyperdrome 题目链接 题目描述 Hypergnome planet is famous for its Great Universal Games between gnomes — the Games between gnomes from each part of the galaxy in various disciplines. The most popular discipline in the Games is the Hyperdrome disc

旺崽的博客 3257

AI+Xmind自动生成测试用例(思维导图格式)

最后:我是Walker,一个热爱分享编程知识的程序员,希望能够帮助到你!

Think_and_work的博客 2332

2020牛客寒假算法基础集训营5

链接:link 来源:牛客网 D 牛牛与牛妹的约会 牛牛在辛苦的一天的比赛之后,要去找牛妹玩,其实牛妹那天也在比赛。他为了找到牛妹,要尽快的从自己的比赛地到她的比赛地。还记得吗,比赛地都是只在xxx轴上,所以两个人的坐标都满足y=0y=0y=0。牛牛除了可以以 111单位距离/单位时间的速度移动任意时间以外,还可以花费111单位时间进行闪现。每次闪现时,如果当前他的坐标是x=kx=kx=k。他将闪...

Coach-XP的博客 984

【软碟通 | UltraISO】刻录光盘教程(制作U盘启动盘)

前言 今天老师说办公室的电脑有点卡,让我给重新安装一个 Windows 7 系统。于是就用软碟通(UltraISO)在 U 盘上刻录了一个 Windows 7 镜像,然后给老师重装了系统。顺便把制作 U 盘启动盘的教程也分享给大家。 软件 UltraISO v9.7.1.3519:点击跳转(密码:dd2k) 教程 将 U 盘插到电脑上,然后鼠标右击选择格式化(制作启动盘必须格式化) 点击文件-打开 选择下载好的系统镜像(如:Windows 7) 点击启动-写入硬盘映像 选择硬盘

XavierJ的博客 2万+

APB Timer验证环境搭建——学习笔记(1)

以下为个人学习笔记,如有疏漏,请大家指正补充~~APB Timer是一个简单的下行计数器,包括一个32位计数器和一组比较器,可以实现多种计时功能。包括生成一次性中断或者定时中断。

qq_41651535的博客 1577

2020牛客寒假算法基础集训营5 F-碎碎念

2020牛客寒假算法基础集训营5 F-碎碎念 思路: 数位dp + 前缀和 #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <cmath> #include <algorithm> #include &lt...

11eyes 289

3.1 快速启动Flink集群

在本实战中,我们将快速启动Apache Flink 1.13.0集群,并在Hadoop集群环境中提交作业。首先,我们会在本地下载Flink安装包并上传至云主机,解压并配置环境变量。接着,我们将启动Flink集群,通过访问Web UI进行监控管理。然后,我们会配置集群,将Flink分发到从节点,并在集群上提交作业。最后,我们将通过命令行提交作业,并在Web UI上查看任务节点的输出结果。这个过程涵盖了Flink集群的部署、配置和作业提交,为大数据处理提供了一个完整的实战经验。

howard2005的专栏 727

2020牛客寒假算法基础集训营5 F题

2020牛客寒假算法基础集训营5 F题 F-碎碎念 hello~偶又来啦,为啥要一个题一个题的发呢,是因为每个题目的题型不一样呀,我要把他们分类,于是我就一篇一篇的发啦 这是一道dp题(我好像首次写dp的博客欸=-=不行,我要再接再厉ovo) 传送门 题目的大概意思就是后台judge机制,有效的提交是这么说=-=有AC,还有WA啦啥啥啥的,首先给你一个数x,这个数是你提交wa之后队友喊的次数,然后...

qq_44624316的博客 174

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【集训队作业】IOI 2020 集训队作业 试题泛做 5

Atcoder Regular Contest 89 Problem F. ColoringBalls 首先考虑如何判断一个给定的序列是否能够得到。 显然,连续的相同颜色可以被替换为一个,并且,每一段不包含 W 的区间都可以分开考虑。 可以发现,分开的区间分为如下几种: (1)(1)(1) 、RRR ,需要操作序列:rrr (2)(2)(2) 、B,RB,BRB,RB,BRB,RB,BR ,需要操...

cz_xuyixuan的博客 642

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

2020牛客寒假算法基础集训营5【无C】

题目来源:https://ac.nowcoder.com/acm/contest/3006#question 正常感受到了被模拟支配的恐惧,然后A了8题就跑路了,其实是不会写 名次是这五场以来最靠前的一次,奥利给! A - 模板 这题差点让我形态崩了,我一开始题目看错了~~(我以为删除哪里都可以,结果只能删除末尾)~~ ,其实蛮简单的,多出来的加,等长的不一样就改 #include<i...

HungTeen的博客 825

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2020牛客寒假算法基础集训营5 题解

牛客训练营5 A 模板 题目很简单,要求的答案包括两部分:两个字符串长度的差num1和在短的字符串长度上,循环两者有num2个不同的字母,num=num1+num2; #include <iostream> #include<bits/stdc++.h> using namespace std; #define ll long long const ll maxn=1e5...

atnanajiang的博客 577

【牛客网】2020牛客寒假算法基础集训营5

比赛地址 官方题解 A 暴力 长串和短串进行比较,短串后面不够的肯定要添加,然后我们再看前面有两个串多少位不相等的需要改变就完了。 B 三分 很多考察极值问题的我们都要想一下二分或者三分是否可行,这题值域是峰型的很明显就是三分问题 像是值域单调那就是二分,本题可以二分其导数。 博客:https://blog.csdn.net/qq_41157137/article/details/8295...

x_mn的博客 516

【题解】2020牛客寒假算法基础集训营5

比赛链接:https://ac.nowcoder.com/acm/contest/3006 试题目录A - 模板(签到)E - Enjoy the game(思维+规律)I - I题是个签到题(签到)J - 牛牛战队的秀场(计算几何) A - 模板(签到) 原题链接:https://ac.nowcoder.com/acm/contest/3006/A 思路: 两个字符串差值加上相同长...

360°顺滑 299

2020物联实验室集训第5天

HTML: 元素语法: HTML 元素以开始标签起始 HTML 元素以结束标签终止 元素的内容是开始标签与结束标签之间的内容 某些 HTML 元素具有空内容(empty content) 空元素在开始标签中进行关闭(以开始标签的结束而结束) 大多数 HTML 元素可拥有属性 属性: 属性是 HTML 元素提供的附加信息。 HTML 元素可以设置属性 属性可以在元素中添加附加信息 属性一般描述于开始标签 属性总是以名称/值对的形式出现,比如:name=“value”。 基础: 1.标题: 标题(Heading

qq_43488381的博客 171

2020牛客寒假算法基础集训营5:H——Hash

链接:https://ac.nowcoder.com/acm/contest/3006/H 来源:牛客网 题目描述 这里有一个hash函数 const int LEN = 6; int mod; int Hash(char str[]) { int res = 0; for (int i = 0; i < LEN; i++) { res = (res * 26 + str[i] - ‘a’)...

wait 1649

2020牛客寒假算法基础集训营5 H题

2020牛客寒假算法基础集训营5 H题Hash 传送门 这是一道名如其题的题目~就是hash和数学啦 今天2.14情人节耶~zz情人节快乐 嘻嘻。昨天刚刚打完的第五场,这次做了三道题(偶不怕丢脸!)坚持总是会胜利的嘛~ 昨天晚上躺在床上一直想自己能不能有用点!害!每次晚上像是打了鸡血一样说明天早上一定要早点起来学习,结果=-=偶服了,第二天早上干脆什么都忘掉了,一觉睡到十点十一点=-=周而复始的没...

qq_44624316的博客 200

2020牛客寒假算法基础集训营5 D题

2020牛客寒假算法基础集训营5 D题 D-牛牛与牛妹的约会 牛牛和牛妹的约会在今天啦~ 这个题目是一个简单的贪心,但是我要把这个题目分类到精度问题中qaq,因为我精度这个地方卡了很久耶=-= 传送门 题目大概意思就是牛牛和牛妹要在2.14约会啦~然后他们都在水平的x轴上,给出牛牛和牛妹的坐标,然后两种策略,第一种是直接到达pow(x, 1/3)(我们假设牛牛的地点是x),这种策略将会花费1个单位...

qq_44624316的博客 188

【2020暑期海亮集训】Day 5:普及组模拟赛(7.21)

目录引子题目T1-时间(time)【题目描述】【输入数据】【输出数据】【样例输入 1】【样例输出 1】【样例输入 2】【样例输出 2】【样例输入 3】【样例输出 3】【数据范围】【附加知识】【解题思路】【Code】T3-数学(math)【题目描述】【输入数据】【输出数据】【样例输入】【样例输出】【数据范围】【解题思路】【Code】T4-发际线(hair)【题目描述】【输入数据】【输出数据】【样例输入】【样例输出】【数据范围】【解题思路】【Code】 引子 怎么还有10天结束这恐怖的集训呀!整天只有考试,考试

Admin-zx 的博客 670

2020牛客寒假算法基础集训营5 H.Hash

2020牛客寒假算法基础集训营5 H.Hash 题目描述 这里有一个hash函数 const int LEN = 6; int mod; int Hash(char str[]) { int res = 0; for (int i = 0; i < LEN; i++) { res = (res * 26 + str[i] - ‘a’) % mod; } return res; } 现给定一个...

旺崽的博客 3002

2020牛客寒假算法基础集训营5 B 牛牛战队的比赛地

https://ac.nowcoder.com/acm/contest/3006/B 题目描述 由于牛牛战队经常要外出比赛,因此在全国各地建立了很多训练基地,每一个基地都有一个坐标。 这周末,牛牛队又要出去比赛了,各个比赛的赛点都在轴上。牛牛战队为了方便比赛,想找一个到达训练基地最大距离最小的地方作为比赛地。 这个问题对于牛牛战队太简单了,它就交给了你,你来帮他算一下~ 思路 题解上写...

correct 394
上一篇: 平衡树·从BST到treap到fhq-treap
下一篇: [Ynoi2016]炸脖龙I/Nephren Ruq Insania
NephrenRuqInsania
博客等级 码龄8年 20粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值