sign

[BZOJ4712]洪水(树链剖分+DP)

て烟熏妆下的殇ゞ 提交于 2019-11-30 12:07:35
题意 给一颗点带权的树,删除一个点需要花费对应的代价,每次询问一颗子树,求最小代价,使得子树的根到不了子树中的任何叶子,支持将单点的权值增加一个正值 思路 设 \(f[i]\) 表示i子树的答案,h[i]表示i的所有儿子的f和,w[i]表示i的权值,不难列出状态转移方程: f[i]=min(w[i],h[i]) 如果i是叶子,就将它的h赋成正无穷,可以避免一些讨论 对于修改操作,由于w只会增加,所以各个数组的值都不会减少 一个显然的情况是,如果一个点的f值已经等于w,那么无论它的h怎么增加,它的f值是不会变的(除非修改它的w) 设修改过程中的某个点的f值变化了delta,我们将该点对祖先的影响分为四种情况(设该点为i,父亲为fa) \(delta=0\) ,那么它的祖先不会变,break(其实和2差不多) \(f[fa]==w[fa]\) ,即修改它的h值对f没有影响,h[fa]+=delta,delta=0,下一步就会break掉 \(w[fa]>h[fa],w[fa]>h[fa]+delta\) ,即加了delta之后,f[fa]也会加delta \(w[fa]>f[fa],w[fa]\leq h[fa]+delta\) ,即加了delta之后,f[fa]就变为w[fa] 用树链剖分维护min(w-h),h,对于修改操作,找到最上面的满足3的点,将这一段路径的h值加delta

18上海大都会赛G

耗尽温柔 提交于 2019-11-30 11:28:43
卡epssm 先判是不是个凸包, 显然我们要旋转点, 显然在一定范围内是有单调性的, 这个范围不太好找,我们把2pi分成若干小段,其中这些小段里有单调性,最后取min就行,eps太大会wa,推荐1e-11. 注意check的时候不能是『那样的形状』 自己脑补去吧 #include <bits/stdc++.h> using namespace std; typedef double db; const db eps=1e-11; const db pi=acos(-1); int sign(db k){ if (k>eps) return 1; else if (k<-eps) return -1; return 0; } int cmp(db k1,db k2){return sign(k1-k2);} struct point{ db x,y; point operator + (const point &k1) const{return (point){k1.x+x,k1.y+y};} point operator - (const point &k1) const{return (point){x-k1.x,y-k1.y};} point operator * (db k1) const{return (point){x*k1,y*k1};} point operator

网络爬虫day08

假如想象 提交于 2019-11-30 09:33:37
DAY08 Day07回顾 cookie模拟登陆 1 、适用网站类型 : 爬取网站页面时需要登录后才能访问,否则获取不到页面的实际响应数据 2 、方法 1 (利用cookie) 1 、先登录成功 1 次 , 获取到携带登陆信息的Cookie(处理headers) 2 、利用处理的headers向URL地址发请求 3 、方法 2 ( 利用requests . get ( ) 中cookies参数 ) 1 、先登录成功 1 次 , 获取到cookie , 处理为字典 2 、res = requests . get ( xxx , cookies = cookies ) 4 、方法 3 (利用session会话保持) 1 、实例化session对象 session = requests . session ( ) 2 、先post : session . post ( post_url , data = post_data , headers = headers ) 1 、登陆,找到POST地址 : form - > action对应地址 2 、定义字典,创建session实例发送请求 # 字典key :<input>标签中name的值(email,password) # post_data = {'email':'','password':''} 3 、再get : session .

计算机系统导论——小班作业(2)——浮点数的位级表示

假装没事ソ 提交于 2019-11-30 06:18:15
2019年9月22日 题目2.88 答案 格式A 格式B 位 值 位 值 1 01110 001 -9/16 1 0110 0010 -9/16 0 10110 101 +208 0 1110 1010 +208 1 00111 110 -7/(2^10) 1 0000 0111 -7/(2^10) 0 00000 101 5/(2^17) 0 0000 0000 +0 1 11011 000 -2^12 1 1111 0000 -∞ 0 11000 100 +768 0 1111 0000 +∞ 特殊要求 题目2.94 我的float_twice函数 1 /* Access bit-level representation floating-point number*/ 2 typedef unsigned float_bits; 3 4 /* Compute 2*f. If f is NaN, then return f.*/ 5 float_bits float_twice(float_bits f){ 6 /* Decompose bit representation into parts */ 7 unsigned sign = f&(1<<31); 8 unsigned exp = f&(0xFF<<23); 9 unsigned frac = f&0x7FFFFF;

软件工程第二次作业:熟悉使用工具

心已入冬 提交于 2019-11-30 05:50:35
第二次作业:熟悉使用工具 GIT地址 https://github.com/ GIT用户名 Sisyphus121 学号后五位 61313 博客地址 我的博客 作业链接 https://www.cnblogs.com/harry240/p/11515697.html 1.环境配置 我使用的是VS2019版本,之前在做C++课程的作业时已经使用了VS,环境配置没有截图。 安装了Git和GitHub。 2.问题及代码 阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。 作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求: 程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0 和 100 之间,运算符在 2 个 到 3 个之间。 由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6 这样的算式。 练习题生成好后,将生成的 n 道练习题及其对应的正确答案输出到一个文件 subject.txt 中。 当程序接收的参数为4时,以下为一个输出文件示例。 13+17

字节跳动小程序tt.pay支付流程和遇到的问题

丶灬走出姿态 提交于 2019-11-30 00:50:42
搞了好几天的服务暂不可用,或者sign错误,缺少app_id什么的,终于可以了。 我主要说下流程和我遇到的问题 我是用的tt.pay()。 首先流程: 一.后端发送post请求到http://tp-pay.snssdk.com/gateway 获取字节跳动小程序订单号trade_no      二.获取微信支付返回的mweb_url,和生成支付宝支付链接      三.生成字节跳动小程序sign(这里如果只用到其中一种支付的时候,官方sdk会有个坑,下面详细写下,我就是这个坑搞了好久) =============================================================================================================================================== 一 : 1.   //获取头条订单 public String getTradeNo(GroupOrder groupOrder,User user,HttpServletRequest request){ SortedMap<String, Object> parameters = new TreeMap<String, Object>(); JSONObject jsonObject2 = new

How to sign a txt file with a PGP key in C# using Bouncy Castle library

一曲冷凌霜 提交于 2019-11-29 23:02:05
问题 Does anyone have an example of how I can sign a txt file, using a PGP key in C# and Bouncy Castle library. Not to encrypt the file, only to add a signature. 回答1: public void SignFile(String fileName, Stream privateKeyStream, String privateKeyPassword, Stream outStream) { PgpSecretKey pgpSec = ReadSigningSecretKey(privateKeyStream); PgpPrivateKey pgpPrivKey = null; pgpPrivKey = pgpSec.ExtractPrivateKey(privateKeyPassword.ToCharArray()); PgpSignatureGenerator sGen = new PgpSignatureGenerator

Check if all numbers in a list are same sign in Python?

最后都变了- 提交于 2019-11-29 22:45:21
问题 How can I tell if a list (or iterable) of numbers all have the same sign? Here's my first (naive) draft: def all_same_sign(list): negative_count = 0 for x in list: if x < 0: negative_count += 1 return negative_count == 0 or negative_count == len(list) Is there a more pythonic and/or correct way of doing this? First thing that comes to mind is to stop iterating once you have opposite signs. Update I like the answers so far although I wonder about performance. I'm not a performance junkie but I

9月17日数据结构专题考试题解(待更新)

送分小仙女□ 提交于 2019-11-29 21:38:27
9月17日数据结构专题考试题解 $ By~wch $ 第一题:加法(线段树) 题目描述: 给一个 $ n $ 阶排列 $ b $ ,要求维护一个初值全为 $ 0 $ 的数组 $ a_i $ ,支持 $ q $ 次如下操作: 给出 $ l,r $ ,将 $ a_l,a_{l+1}...a_{r-1},a_{r} $ 全部加 \(1\) 。 给出 $ l,r $ ,查询 $ \sum_{i=l}^{r} \lfloor \frac{a_i}{b_i} \rfloor $ 数据范围: $ n\leq 3\times 10^5$ $ solution: $ 很让人头疼的一道题目,当时觉得第一个操作肯定是一个突破口,因为每次只加 $ 1 $ 。这是一个很好的性质,在结合一下题目的条件( $ b $ 是个排列!),于是就算了一下最坏情况(不断区间加)的 $ \sum a_i =4\times 10^6 $ ,线段树每一次修改复杂度为 $ logn $ ,两者一乘复杂度可以接受。于是边只要看能不能实现这棵线段树了。 用线段树记录区间总和,用懒标记记录修改,然后每次加入时判断是否有元素达到了 $ b_i $ 权值需要加一,如果有就 $ pushdown $ 操作往下传,一直到那个要修改的叶子节点。(实现过程有点复杂,大家可以自己想,但是我自己都觉得常数可能过不了) $ code: $

C#使用SHA1加密类(RSAFromPkcs8)支持1024位和2048位私钥

我与影子孤独终老i 提交于 2019-11-29 19:46:52
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Security.Cryptography; namespace HelloWord.RSA { /// <summary> /// 类名:RSAFromPkcs8 /// 功能:RSA加密、解密、签名、验签 (支持1024位和2048位私钥) /// 详细:该类对Java生成的密钥进行解密和签名以及验签专用类,不需要修改 /// 版本:3.0 /// 日期:2013-07-08 /// 说明: /// 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 /// </summary> public sealed class RSAFromPkcs8 { /** * RSA最大解密密文大小 * 注意:这个和密钥长度有关系, 公式= 密钥长度 / 8 */ private const int MAX_DECRYPT_BLOCK = 128; /// <summary> /// 签名 /// </summary> /// <param name="content">待签名字符串</param> /