【LGR-065】洛谷11月月赛 III Div.2
临近$CSP$......
下午打了一发月赛,感觉很爽。
非常菜的我只做了前两题......然而听说前两题人均过......
写法不优秀被卡到$#1067$......
T1:基础字符串练习题:
前缀和水题,只需要维护前缀最小值即可
很菜的我选择了用堆维护,凭空多了个$log$。
于是就慢成**了。
注意特判$0$、$1$的情况。
参考代码:
#include<iostream>
#include<queue>
#include<cstring>
#define N 100005
using namespace std;
char ch[N];
int a[N],ans,n,kkk;
priority_queue<int,vector<int>,greater<int> >q;
int main()
{
cin>>(ch+);
n=strlen(ch+);
for(int i=;i<=n;i++)a[i]=a[i-]+(ch[i]==''?-:);
for(int i=;i<=n;i++)
{
//cout<<a[i]<<" ";
q.push(a[i]);
ans=max(a[i]-q.top(),ans);
}
if(a[n]==-n)cout<<-<<endl;
else if(a[n]==n)cout<<n<<endl;
else cout<<ans<<endl;
return ;
}
T1
T2:基础最短路练习题
讲评人讲了个奇奇怪怪的线性做法,但由于我太菜所以没想出来。
于是我又多了个$log$。
首先考虑树的做法,由于路径唯一,因此可以直接树上倍增找到答案
由于没有任何一个环的$xor$和不为0,所以如何走这些环对我们来说其实不重要,因此我们可以任意找一颗生成树,然后用树的做法得到答案。
#include<iostream>
#include<cstdio>
#include<cstring>
#define N 300005
using namespace std;
int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=(x<<)+(x<<)+(ch^);ch=getchar();}
return x*f;
}
struct node
{
int a,b,c;
}s[N];
int n,m,q,f[N],fa[N][],dist[N][],v[N],w[N],head[N],nxt[N],cnt,num,dep[N];
int find(int x){return f[x]==x?x:f[x]=find(f[x]);}
void add(int a,int b,int c)
{
v[++cnt]=b;
w[cnt]=c;
nxt[cnt]=head[a];
head[a]=cnt;
}
void dfs(int x,int ff)
{
dep[x]=dep[ff]+;
for(int i=;i<=;i++)
{
fa[x][i+]=fa[fa[x][i]][i];
dist[x][i+]=(dist[x][i]^dist[fa[x][i]][i]);
}
for(int i=head[x];i;i=nxt[i])
{
if(v[i]==ff)continue;
fa[v[i]][]=x;
dist[v[i]][]=w[i];
dfs(v[i],x);
}
}
int lca(int x,int y)
{
if(dep[x]<dep[y])swap(x,y);
for(int i=;i>=;i--)
{
if(dep[fa[x][i]]>=dep[y])x=fa[x][i];
}
if(x==y)return x;
for(int i=;i>=;i--)
{
if(fa[x][i]!=fa[y][i])x=fa[x][i],y=fa[y][i];
}
return fa[x][];
}
int qmax(int x,int y)
{
int ans=;
for(int i=;i>=;i--)
{
if(dep[fa[x][i]]>=dep[y])
{
ans=(ans^dist[x][i]);
x=fa[x][i];
}
}
return ans;
}
int main()
{
n=read();m=read();q=read();
for(int i=;i<=m;i++)s[i].a=read(),s[i].b=read(),s[i].c=read();
for(int i=;i<=n;i++)f[i]=i;
for(int i=;i<=m;i++)
{
int x=s[i].a,y=s[i].b,xx=find(x),yy=find(y);
if(xx!=yy)
{
f[xx]=yy;
add(x,y,s[i].c);
add(y,x,s[i].c);
num++;
}
if(num==n-)break;
}
dfs(,);
while(q--)
{
int x=read(),y=read(),xx=lca(x,y);
cout<<(qmax(x,xx)^qmax(y,xx))<<endl;
}
return ;
}
T2
T3:咕咕咕
T4:咕咕咕
【LGR-065】洛谷11月月赛 III Div.2的更多相关文章
- 【LGR-062】洛谷10月月赛 III div.2 (A-C)
前言 100+100+46+0=246pts 300多名 以后每次比赛都要有进步哦!qwq 小D与笔试 水题 Code #include<algorithm> #include<io ...
- 洛谷 11 月月赛 I Div.2 A [Kubic] Addition 题解
Content 你有一个长度为 \(n\) 的序列 \(a\).你可以执行 \(n-1\) 次操作,每次操作中你可以选择一个位置 \(i\),并删除 \(a_i\) 和 \(a_{i+1}\),再在原 ...
- 「P4996」「洛谷11月月赛」 咕咕咕(数论
题目描述 小 F 是一个能鸽善鹉的同学,他经常把事情拖到最后一天才去做,导致他的某些日子总是非常匆忙. 比如,时间回溯到了 2018 年 11 月 3 日.小 F 望着自己的任务清单: 看 iG 夺冠 ...
- 「P4994」「洛谷11月月赛」 终于结束的起点(枚举
题目背景 终于结束的起点终于写下句点终于我们告别终于我们又回到原点…… 一个个 OIer 的竞赛生涯总是从一场 NOIp 开始,大多也在一场 NOIp 中结束,好似一次次轮回在不断上演.如果这次 NO ...
- 「LuoguP4995」「洛谷11月月赛」 跳跳!(贪心
题目描述 你是一只小跳蛙,你特别擅长在各种地方跳来跳去. 这一天,你和朋友小 F 一起出去玩耍的时候,遇到了一堆高矮不同的石头,其中第 ii 块的石头高度为 h_ihi,地面的高度是 h_0 = 0 ...
- 洛谷11月月赛(284pts rank85)
https://www.luogu.org/contestnew/show/12006 我是比赛完后在去写的 这是我第一次打洛谷月赛,之前一次是比赛完才去看而且写了第一题就没写后面的了 284分,太水 ...
- 洛谷11月月赛round.1
太感动了#2 thwfhk 240 (801ms) 100 100 40 又一张明信片,话说10月的怎么还没收到 P2246 SAC#1 - Hello World(升级版) 题目背景 一天, ...
- 洛谷11月月赛round.2
P3414 SAC#1 - 组合数 题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣 ...
- 洛谷11月月赛题解(A-C)
心路历程 辣鸡T3卡我1.5h题意,要不是最后nlh跟我解释了一下大样例估计这次是真凉透了.. A P4994 终于结束的起点 打出暴力来发现跑的过最大数据?? 保险起见还是去oeis了一波,然后被告 ...
随机推荐
- 容器"共享"宿主机的hosts文件(终极方案)
0.背景 有时候制作docker镜像生成容器时需要宿主机的hosts文件共享到容器中.首先想的是通过挂载的方式共享hosts文件,但是实践时发现根本行不通,hosts文件在/etc/目录下,如进行挂载 ...
- C#调用Python(二)
python文件中有引入其他包.模块 一.源码 1.1 python源码,源码.python 打包方法,以及打包后的程序文件.请移步https://www.cnblogs.com/zhuanjiao ...
- luogu P2661 信息传递 x
P2661 信息传递 题目描述 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知 ...
- python build-in function
目录(?)[-] absx alliterable anyiterable basestring binx boolx callableobject chri classmethodfunction ...
- leetcode-mid- 50. Pow(x,n)-NO
mycode time limited 例如 x=0.00001 n=2147483647 参考: class Solution(object): def myPow(self, x, n): &q ...
- ssd写入量剩余读写次数怎么查
固态硬盘ssd写入量剩余读写次数怎么查 为什么要查固态硬盘的写入量呢,主要是因为闪存是有写入次数限制的,所以查次数就是看看寿命还有多少,说白了这是对耐久度的一点担忧.其实目前原厂出品的固态硬盘,即便是 ...
- 刃边法计算MTF(ESF、LSF、PSF)
MTF 调制传递函数 评价一个成像系统目前主流的办法主要有三种TV line检测,MTF检测,和SFR检测. MTF是Modulation Transfer Function的英文简称,中文为调制传递 ...
- 用Vue来实现音乐播放器(四十):歌单详情页布局以及Vuex实现路由数据通讯
1.歌单详情页是推荐页面的二级路由页面 将推荐页面歌单的数据传到歌曲详情页面 利用vuex 1.首先在state下定义一个歌单对象 disc{} 2.在mutaions-types中 定义一个别名 ...
- Django信号量
摘自官方文档 使用 信号 Django发送的所有信号的列表.使用该send()方法发送所有内置信号. 参见 有关如何注册和接收信号的信息,请参阅信号调度器上的文档. 用户登录/注销时,身份验证框架会 ...
- ftp4j揭示java.net.SocketException: Connection reset的解决
ftp4j提示java.net.SocketException: Connection reset的解决系统的自动更新FTP服务器,其他计算机连接都没有问题,包括xp.server2008.win7. ...