sol

[LeetCode] 139. Word Break 单词拆分

有些话、适合烂在心里 提交于 2020-12-07 00:56:23
Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine if s can be segmented into a space-separated sequence of one or more dictionary words. Note: The same word in the dictionary may be reused multiple times in the segmentation. You may assume the dictionary does not contain duplicate words. Example 1: Input: s = "leetcode", wordDict = ["leet", "code"] Output: true Explanation: Return true because "leetcode" can be segmented as "leet code" . Example 2: Input: s = "applepenapple", wordDict = ["apple", "pen"] Output: true Explanation: Return true

[BZOJ5329][SDOI2018]战略游戏

北战南征 提交于 2020-11-29 06:03:43
bzoj luogu Description 省选临近,放飞自我的小Q无心刷题,于是怂恿小C和他一起颓废,玩起了一款战略游戏。 这款战略游戏的地图由n个城市以及m条连接这些城市的双向道路构成,并且从任意一个城市出发总能沿着道路走到 任意其他城市。现在小C已经占领了其中至少两个城市,小Q可以摧毁一个小C没占领的城市,同时摧毁所有连接这 个城市的道路。只要在摧毁这个城市之后能够找到某两个小C占领的城市u和v,使得从u出发沿着道路无论如何都不 能走到v,那么小Q就能赢下这一局游戏。 小Q和小C一共进行了q局游戏,每一局游戏会给出小C占领的城市集合S 你需要帮小Q数出有多少个城市在他摧毁之后能够让他赢下这一局游戏。 Input 第一行包含一个正整数$T$,表示测试数据的组数, 对于每组测试数据, 第一行是两个整数$n$和$m$,表示地图的城市数和道路数, 接下来$m$行,每行包含两个整数$u$和$v$表示第$u$个城市和第$v$个城市之间有一条道路,同一对城市之间可能有多条道路连接, 第$m+1$行是一个整数$q$,表示游戏的局数, 接下来$q$行,每行先给出一个整数$|S|(2\le |S|\le n)$ 表示小C占领的城市数量,然后给出$|S|$个整数$s1,s2,...s|S|,(1\le s1<s2<s_{|S|}\le n)$,表示小C占领的城市。 $1\le T \le 10$

有源汇有上下界最大/最小流

百般思念 提交于 2020-11-22 04:38:55
建图还是要想一想的...写一下吧 首先根据有源汇可行流建图,正向附加边满流证明有可行流 然后在这个残量网络上删掉 $(t,s,oo)$ 这条边,跑 $s->t$ 最大流就是最大流,$t->s$ 最大流就是最小流 #include <bits/stdc++.h> #define int long long #define LL long long #define rep(i, s, t) for (register int i = (s), i##end = (t); i <= i##end; ++i) #define dwn(i, s, t) for (register int i = (s), i##end = (t); i >= i##end; --i) using namespace std; inline int read() { int x = 0 , f = 1 ; char ch; for (ch = getchar(); !isdigit(ch); ch = getchar()) if (ch == ' - ' ) f = - f; for (; isdigit(ch); ch = getchar()) x = 10 * x + ch - ' 0 ' ; return x * f; } const int maxn = 500010 ; struct Dinic {

简单的区块链代码入门(python演示原理和solidity 的truffle发布)实验

烈酒焚心 提交于 2020-11-21 13:30:35
好久没回CSDN了 本文是几个教程的更新和融合,一部分通过python实现展示简单的区块链结构和过程,一部分用truffle发布简单的solidity智能合约脚本,算是区块链入门(不算吧。。) python区块链模拟脚本(本地) 环境 : 3.7 python win10 import hashlib # class Block: # def __init__(self, data, prev_hash): # self.previous_hash = prev_hash # self.data = data # # # calculate hash # @property # def hash(self): # message = hashlib.sha256() # message.update(str(self.data).encode('utf-8')) # return message.hexdigest() class Block(): """" """ def __init__(self,data,prev_hash): self.previous_hash = prev_hash self.data = data self.nonce = "" @property def hash(self): message = hashlib.sha256() message

Codeforces Round #466 (Div. 2) 题解

南楼画角 提交于 2020-11-21 11:13:48
人生中第三次$CF$。。。 考试中切了$A$~$E$ $F$题会做没时间写 #题解 ##A:Points on the line ###题意 给定一个数列,删最小的数,使最大差不大于一个定值 ###Sol 排序后选的一定是段连续的区间,枚举左右端点即可 手速慢了233 # 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; const int _(105); IL int Input(){ RG int x = 0, z = 1; RG char c = getchar(); for(; c < '0' || c > '9'; c = getchar()) z = c == '-' ? -1 : 1; for(; c >= '0' && c <= '9'; c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48); return x * z; } int n, d, x[_], ans; int main(RG int argc, RG char* argv[]){ n = Input(), d

限时删,收获不止SOL优化抓住SQL的本质——阿里P9整理出超全SQL笔记

依然范特西╮ 提交于 2020-11-11 10:20:30
前言: 有人就有江湖,有江湖就有IT系统,有IT系统就有数据库,有数据库就有SQL,SQL应用可一字概括:“"广"。加之其简单易学,SQL实现也可一字概括:“乐”。 然而,SQL虽然实现简单可乐,却极易引发性能问题,那时广大SQL使用人员可要“愁”就一个字,心碎无数次了。 缘何有性能问题?原因也可以用一字一个也可以用一字概括:“量”。当系统数据量、并发访问量上去后,不良SQL就会拖垮整个系统,我们甚至找不出哪些SQL影响了系统。即便找到也不知如何动手优化。此时的心情也可以用一字概括:“懵”。 现在本书开始带你抛除烦恼,走进优化的可乐世界! 首先教你SQL整体优化、快速优化实施、如何读懂执行计划、如何左右执行计划这四大必杀招。整这些干嘛呢?答案是,传授一个先整体后局部的宏观解决思路,走进“道”的世界。 接下来带领大家飞翔在“术”的天空。教你体系结构、逻辑结构、表设计、索引设计、表连接这五大要领。这么多套路,这又是要干嘛?别急,这是教你如何解决问题,准确地说,是如何不改写即完成SQL优化。 随后本书指引大家学会等价改写、过程包优化、高级SQL、分析函数、需求优化这些相关的五大神功。有点头晕,能否少一点套路?淡定,这还是“术”的范畴,依然是教你如何解决问题,只不过这次是如何改写SQL完成优化。 最后一个章节没套路了,其中跟随你多年的错误认识是否让你怀疑人生,其中让SQL跑得更慢的观点

[BZOJ2962][清华集训]序列操作

两盒软妹~` 提交于 2020-11-03 02:24:22
bzoj luogu #题意 有一个长度为$n$ 的序列,有三个操作: $I \ \ a\ b\ c\ :$表示将$[a,b]$这一段区间的元素集体增加$c$; $R \ \ a\ b\ :$表示将$[a,b]$区间内所有元素变成相反数; $Q \ \ a\ b\ c\ :$表示询问$[a,b]$这一段区间中选择$c$ 个数相乘的所有方案的和$mod19940417$的值。 对于100%的数据,$n≤50000,q≤50000$,初始序列的元素的绝对值$≤10^9$,保证$[a,b]$是一个合法区间,$I$操作中$|c|\le10^9$,$Q$操作中$1≤c≤min⁡(b−a+1,20)$ #sol 维护的信息就是在每一个区间内选出$0...20$个数的乘积之和吧。 向上合并就是一个类似卷积的形式,直接$O(c^2)$转移即可。 区间取反简单一些,就是把所有$i$为奇数的信息取反即可。 加一个数相对来说复杂一点,可以把原来的式子大力展开,得到了一个组合数乘$x$的若干次幂之和的形式。 记得处理两种标记合并的问题。 ##code #include<cstdio> #include<algorithm> using namespace std; int gi() { int x=0,w=1;char ch=getchar(); while ((ch<'0'||ch>'9')&&ch!=

tcp连接时,BROKEN PIPE错误的原因以及解决方法

跟風遠走 提交于 2020-10-29 01:41:05
tcp连接时,BROKEN PIPE错误的原因以及解决方法 问题: 写了一个server和一个client,UNIX套接字的,server不断接收消息并打印出来,client是一个交互程序,输入一个消息回车发送,接着又可以输入消息。 出问题了: 当server监听着,client第一次发送消息成功,server接收并打印出来了。 client第二次发送消息没成功并且结束程序了,server没接收到消息,保持继续监听。 我用GDB调试时,发现client第二次发送消息时,client收到SIGPIPE(Broken Pipe)信号。server明明还监听着,而且再次启动client还是第一次成功,第二次失败退出。 同样的,当client因为断开(关闭了网络描述符sfd,或者ctrl+c/ctrl+\异常断开),server端也产生SIGPIPE信号。 分析: TCP协议是端到端的传输控制协议,之所以是“端到端”的协议,是因为”路由“是由IP协议负责的,TCP协议负责为两个通信端点提供可靠性保证,这个可靠性不是指一个端点发送的数据,另一个端点肯定能收到(这显然是不可能的),而是指,数据的可靠投递或者故障的可靠通知。 所谓的“端到端”,指的是在通信两端之间建立了一个 全双工 的通信 管道 ,既然是管道,就不得不了解管道。 管道的特点: 管道是半双工的,数据只能向一个方向流动

EIP712实现无Gas以太坊交易【含源码】

 ̄綄美尐妖づ 提交于 2020-10-27 19:45:05
每个人都在讨论无gas以太坊交易,因为没有人喜欢支付gas费用。但是以太坊网络能够精准地运转恰恰是因为交易需要手续费。那么如何实现无gas交易呢?让我们一起学习无gas以太坊交易的魔法! 在这篇文章中,我们将学习如何实现无gas交易模式。你会发现虽然在以太坊上没有免费的午餐,但可以用有趣的方式来转移gas成本。利用本文中学到的知识,你的DApp用户就可以省掉gas,获得更好的用户体验,或者在你的智能合约中构建新颖的代理模式。 不过等一下!还不止这些!为了方便你的使用,我已经将相关工具放到这个 Github仓库 了。因此现在你要实现无gas以太坊交易的门槛已经大大降低了。 现在让我们开始吧! <!--more--> 用自己熟悉的语言学习 以太坊DApp开发 : Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart 1、一些背景知识 我不得不承认,虽然我了解如何在智能合约中实现无gas交易,但是并不太了解背后的密码学知识。不过对我而言这算不上大的障碍,因此如果你也不太熟悉密码学,相信也不会影响你实现无gas以太坊交易。 据我所知,我的私钥被用来签名发送到以太坊网络的交易,在这个过程中运用了一些密码学技术来识别我的身份并存入变量msg.sender,这是以太坊中访问控制的基石。 无gas交易背后的魔法在于

UniswapV2周边合约学习(五)-- ExampleFlashSwap.sol

房东的猫 提交于 2020-10-27 14:52:02
记得朋友圈看到过一句话,如果Defi是以太坊的皇冠,那么Uniswap就是这顶皇冠中的明珠。Uniswap目前已经是V2版本,相对V1,它的功能更加全面优化,然而其合约源码却并不复杂。本文为个人学习UniswapV2源码的系列记录文章。 一、ExampleFlashSwap合约介绍 该合约为利用UniswapV2交易对中的FlashSwap的先借后还特性,在买卖资产的同时和UnisapV1交易对进行交易,利用价格差进行套利。 二、ExampleFlashSwap合约源码 pragma solidity = 0.6 .6 ; import '@uniswap/v2-core/contracts/interfaces/IUniswapV2Callee.sol' ; import '../libraries/UniswapV2Library.sol' ; import '../interfaces/V1/IUniswapV1Factory.sol' ; import '../interfaces/V1/IUniswapV1Exchange.sol' ; import '../interfaces/IUniswapV2Router01.sol' ; import '../interfaces/IERC20.sol' ; import '../interfaces/IWETH.sol' ;