sol

[CF940F]Machine Learning

烈酒焚心 提交于 2020-05-05 19:58:13
codeforces #一句话题意 求区间数字出现次数的mex,带修改 #sol 带修膜队不解释 带修膜队的排序! struct query{ int id,l,r,t; bool operator < (const query &b) const { if (l/block!=b.l/block) return l/block<b.l/block; if (r/block!=b.r/block) return r/block<b.r/block; return t<b.t; } }q1[N]; 左端点所在块为第一关键字, 右端点所在块 为第二关键字,操作版本为第三关键字。 块的大小是$n^{\frac{2}{3}}$,复杂度是$O(n^{\frac{5}{3}})$ 然后就是离散化数组要开两倍 ##code #include<cstdio> #include<algorithm> #include<cmath> using namespace std; int gi() { int x=0,w=1;char ch=getchar(); while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar(); if (ch=='-') w=0,ch=getchar(); while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-

[BZOJ4003][JLOI2015]城池攻占

為{幸葍}努か 提交于 2020-05-04 03:22:59
BZOJ Luogu #sol 补一篇左偏树的题解 骑士对于树上结点挂链,每次合并所有子树上的骑士后把所有攻击力小于城池防御值的骑士弹掉。 左偏树维护加乘懒标记 记得要pushdown delete的时候也要记得pushdown! ##code #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define ll long long const int MAX=300005; struct edge{int to,next;}a[MAX],b[MAX]; int head[MAX],cnt,ft[MAX]; bool type[MAX]; ll h[MAX],key[MAX],v[MAX],plu[MAX],mul[MAX]; int n,m,ls[MAX],rs[MAX],dis[MAX],str[MAX],dep[MAX],dead[MAX],up[MAX]; ll gi() { ll x=0,w=1;char ch=getchar(); while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar(); if (ch=='-') w=-1,ch=getchar(); while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)

一本通1530 Ant Trip

喜欢而已 提交于 2020-05-01 23:18:30
1530:Ant Trip 【题目描述】 原题来自:2009 Multi-University Training Contest 12 - Host by FZU 给你无向图的 N 个点和 M 条边,保证这 M 条边都不同且不会存在同一点的自环边,现在问你至少要几笔才能所有边都画一遍。(一笔画的时候笔不离开纸) 【输入】 多组数据,每组数据用空行隔开。 对于每组数据,第一行两个整数 N,M 表示点数和边数。接下去 M 行每行两个整数 a,b,表示 a , b 之间有一条边。 【输出】 对于每组数据,输出答案。 【输入样例】 3 3 1 2 2 3 1 3 4 2 1 2 3 4 【输出样例】 1 2 【提示】 数据范围与提示: 1 ≤ N ≤ 10^ 5 , 0 ≤ M ≤ 2 × 10^ 5 , 1 ≤ a , b ≤ N 统计一张不一定联通的无向图中欧拉路径数量 sol:用并查集维护联通性,一个联通块中的数量就是其中奇点个数/2,如果没有就是1 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N= 100005 ; 4 int n,m; 5 int Deg[N],Jidian[N],Father[N]; 6 bool Used[N]; 7 inline int Get_Father( int x) 8

tcp粘包与udp丢包的原因

你离开我真会死。 提交于 2020-05-01 13:43:58
tcp粘包与udp丢包的原因 一,什么是tcp粘包与udp丢包 TCP是面向流的, 流要说明就像河水一样, 只要有水, 就会一直流向低处, 不会间断. TCP为了提高传输效率, 发送数据的时候, 并不是直接发送数据到网路, 而是先暂存到系统缓冲, 超过时间或者缓冲满了, 才把缓冲区的内容发送出去, 这样, 就可以有效提高发送效率. 所以会造成所谓的粘包, 即前一份Send的数据跟后一份Send的数据可能会暂存到缓冲当中, 然后一起发送。 UDP就不同了, 面向报文形式, 系统是不会缓冲的, 也不会做优化的, Send的时候, 就会直接Send到网络上, 对方收不收到也不管 , 所以这块数据总是能够能一包一包的形式接收到, 而不会出现前一个包跟后一个包都写到缓冲然后一起Send。 但其实别想得太复杂的, TCP所谓的粘包处理, UDP所谓的丢包处理, 其实都是很简单的. TCP只要保证自己写入的流是按 长度 + 内容 + 长度 + 内容 这样就可以非常简单的解决粘包问题, 切忌不要采用所谓的 开始标识 + 数据 + 结束标识 来分包, 适用性极低, 错误率极高, 除非数据都是固定有格式, 否则是不能采用这种方式的. UDP传送当中, 只存在丢包的可能 , 收到包的时候, 肯定这个包的内容就是正确的, 很少会有错误的 , 因为UDP本身也会用CRC32进行验证, 还有长度验证,

Bzoj1951: [Sdoi2010]古代猪文

久未见 提交于 2020-05-01 06:31:21
#题面 传送门 #Sol 超级数学板子题!!! 费马小定理,扩展欧几里德定理,中国剩余定理,卢卡斯定理等 题意就是求 $$G^{\sum_{k|N}C_N^k}\ mod\ 999911659$$ 首先根据扩展欧拉定理或者费马小定理 $a^x\equiv a^{x% (p-1)}(mod\ p)$ $p$为质数 那么直接求那个 $\sum_{k|N}C_N^k (mod\ 999911658)$ 就好了 模数不是质数$lucas+CRT$合并即可 然后$CRT$用上$ExGcd$ # include <bits/stdc++.h> # define RG register # define IL inline # define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long long ll; template <class Int> IL void Input(RG Int &x){ RG int z = 1; RG char c = getchar(); x = 0; for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1; for(; c >= '0' && c <= '9'; c = getchar()) x = (x

LCT总结——应用篇(附题单)(LCT)

本小妞迷上赌 提交于 2020-04-30 04:19:08
为了优化体验(其实是强迫症),蒟蒻把总结拆成了两篇,方便不同学习阶段的Dalao们切换。 LCT总结——概念篇 戳这里 题单 灰常感谢XZY巨佬提供的强力资磁!(可参考 XZY巨佬的博客总结 ) 题单对于系统地学习一个知识点还是有好处的。 所以蒟蒻搜集了各处的LCT题目(其实作为近年新兴的知识点,现有的好题不是很多,有些题树剖也可做) 大概按细化分类进行整理(类比下面的几个细化知识点,会有重复的列举) 同一类中的题目也大概按难度递增吧(太弱了,对每个题的难度定位或许有不准的地方,欢迎讨论!) 维护链信息(LCT上的平衡树操作) 【Done】 洛谷P3690 【模板】Link Cut Tree 【 Sol. 】 洛谷P3203 [HNOI2010]弹飞绵羊 【 Sol. 】 洛谷P1501 [国家集训队]Tree II 【Todo】 洛谷P2486 [SDOI2011]染色 【 Sol. 】 洛谷P4332 [SHOI2014]三叉神经树 动态维护连通性&双联通分量(可以说是并查集的升级,因为并查集只能连不能断) 【Done】 洛谷P2147 [SDOI2008]Cave 洞穴勘测 【 Sol. 】 洛谷P3950 部落冲突 【 Sol. 】 洛谷P2542 [AHOI2005]航线规划 【Done】 BZOJ4998 星球联盟 【Done】 BZOJ2959 长跑 维护边权

[SP7258 SUBLEX]Lexicographical Substring Search

ⅰ亾dé卋堺 提交于 2020-04-25 13:22:23
luogu #题意 给一个串,求其第k小子串。 不同位置出现的内容相同的子串算作同一个子串。 有多组询问。 $n\le9*10^4,T\le500$ #sol 建出SAM后跑一遍基数排序,预处理出每个状态可以转移到的子串个数。 然后就变成了一个比较经典的第$k$小问题:假设当前面临状态$now$,若$now$可以转移到的数量大于等于$k$,那就说明第$k$小一定是$now$的后继状态。直接进入$now$状态。 否则,令$k=k-sz[now]$,然后跳过状态$now$,考虑下一个状态。 ##code #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int N = 2e5+5; int n,last=1,tot=1,tr[N][26],fa[N],len[N],t[N],a[N],sz[N],Q,k; char s[N]; void extend(int c) { int v=last,u=++tot;last=u; len[u]=len[v]+1; while (v&&!tr[v][c]) tr[v][c]=u,v=fa[v]; if (!v) fa[u]=1; else { int x=tr[v][c]; if (len[x]==len[v]+1) fa[u]=x;

socket php

你说的曾经没有我的故事 提交于 2020-04-23 14:32:55
$socket = socket_create(AF_INET,SOCK_STREAM, SOL_TCP); socket_bind( $socket ,'0.0.0.0',6666 ); while ( true ){ socket_listen( $socket ); $sock = socket_accept( $socket ); $res = socket_read( $sock ,2048 ); echo $res . PHP_EOL ; socket_write( $sock ,'收到客户端消息: '. $res ); } $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP); socket_connect($socket,'0.0.0.0',6666); $msg = 'hlllo server'; socket_write($socket,$msg); $res = socket_read($socket,2048); echo $res;    来源: oschina 链接: https://my.oschina.net/u/4409444/blog/3425543

洛谷P3366 【模板】最小生成树(Boruvka算法)

喜夏-厌秋 提交于 2020-04-20 00:22:53
题意 题目链接 Sol 自己yy着写了一下Boruvka算法。 算法思想很简单,就是每次贪心的用两个联通块之间最小的边去合并。 复杂度 \(O(n \log n)\) ,然鹅没有Kruskal跑的快,但是好像在一类生成树问题上很有用 #include<bits/stdc++.h> #define Pair pair<int, int> #define fi first #define se second #define pb push_back #define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1<<22, stdin), p1 == p2) ? EOF : *p1++) char buf[(1 << 22)], *p1 = buf, *p2 = buf; using namespace std; const int MAXN = 5001; inline int read() { char c = getchar(); int x = 0, f = 1; while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();} while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar(

使用OpenZeppelin在RSK上进行ERC20代币开发

天大地大妈咪最大 提交于 2020-04-18 00:41:10
在本文中,我们将讨论通过 RSK 网络部署和交互 Smart-Contracts 智能合约。我们的合约将是一个基于OpenZeppelin库的ERC20代币,我们将把它直接部署到Mainnet中。 创建合约 我们需要做的第一件事就是知道如何使用 Truffle 。 当我们这样做 $ truffle init 在一个空文件夹中,除了创建配置文件外,我们还为项目和迁移合约创建了文件夹,以记录对同一合约的更改。 合约的 .sol 代码文件位于 ~/Truffle/contracts 迁移脚本在 ~/Truffle/migrations 已编译的合约在 ~/Truffle/build 测试合约在 ~/Truffle/test 我们现在只处理前两个文件夹。 在Truffle文件夹中,我们从 OpenZeppelin 导入库 $ npm install -E openzeppelin-solidity 这些库不仅会安装我们代币token的主要类库,还会安装所有权相关,安全数学运算和许多其他设施的库。值得一提的是,这些库已经过审核以实现高标准的安全性,因此依赖于它们的合约在正确使用时不易受到黑客攻击。 我们的库将安装在 ~/Truffle/node_modules/openzeppelin-solidity/contracts 之后,我们可以将库 ABCD.sol 导入到我们的合约中,如下所示: