stk

虚树

倾然丶 夕夏残阳落幕 提交于 2020-01-08 20:58:45
将树压缩成若干个有用的点 for ( int i = 0 ; i < k ; ++ i ) { int f = lca ( stk [ r ] , h [ i ] ) ; while ( r && id [ f ] < id [ stk [ r - 1 ] ] ) { g1 . add ( stk [ r - 1 ] , stk [ r ] , get ( stk [ r ] , stk [ r - 1 ] ) ) ; -- r ; } if ( f ^ stk [ r ] ) g1 . add ( f , stk [ r ] , get ( stk [ r ] , f ) ) , -- r ; if ( f ^ stk [ r ] ) stk [ ++ r ] = f ; stk [ ++ r ] = h [ i ] ; ] P2495 [SDOI2011]消耗战 在一场战争中,战场由n个岛屿和n-1个桥梁组成,保证每两个岛屿间有且仅有一条路径可达。现在,我军已经侦查到敌军的总部在编号为1的岛屿,而且他们已经没有足够多的能源维系战斗,我军胜利在望。已知在其他k个岛屿上有丰富能源,为了防止敌军获取能源,我军的任务是炸毁一些桥梁,使得敌军不能到达任何能源丰富的岛屿。由于不同桥梁的材质和结构不同,所以炸毁不同的桥梁有不同的代价,我军希望在满足目标的同时使得总代价最小。 侦查部门还发现

BZOJ 2286 [Sdoi2011]消耗战 (虚树模板题)

邮差的信 提交于 2020-01-07 06:10:32
题意 有 \(n\) 个点形成一棵树,边有权值。 \(m\) 次询问,每次询问,给出 \(k\) 个关键点,问把这些关键点都与 \(1\) 号节点断开(不连通)的最小断边的权值和。保证 \(1\) 号节点不是关键点。 \(n,m\le 250000,\sum k\le500000\) 题解 考虑只有一次询问怎么做。 直接树形 \(dp\) 就行了。用 \(dp[u]\) 表示把 \(u\) 这棵子树断开的最小代价。对于关键点必须断 \(u\) 到父亲的边。否则要么断当前点到根的路径上边权最小值,要么断子树内的边(代价为:子树内有关键点的儿子的 \(dp\) 值之和)。 我们可以把 \(1\) 号根节点到父亲的边权设为 \(+\infty\) ,那么 \(dp[1]\) 就是答案。 然后考虑多组数据,发现 \(\sum k\le 500000\) ,显然每次我们需要 \(O(k)/O(k\log k)\) 的算法。 那么就只需要建虚树 \(DP\) 就完事了,每次 \(O(k\log k+k)\) 。这道题还有一个性质,就是虚树中关键点子树中的关键点可忽略。建虚树的时候没有必要建出来。 CODE #include <cstdio> #include <vector> #include <cctype> #include <cstring> #include <algorithm>

第一篇:STK安装

我只是一个虾纸丫 提交于 2020-01-03 04:08:15
一、 毕业设计题目确定好之后,了解到需要学习使用STK软件,首先着手在自己的笔记本电脑(Win10,64位)上安装STK软件,在脚本之家找到了STK11.2的安装包,按照那上面的安装教程顺利完成安装后,桌面上出现了两个快捷方式"STK 11 x64"和"STK Viewer 11 x64",下面的是初次试运行的结果 “STK 11 x64” “STK Viewer 11 x64” 初次运行,一切顺利. 哈哈,元旦快乐! 点击"Create a Senario",应该是新建场景的意思,页面显示一个2D地图和3D地球,都是可以拖动的,还有个选择对象的窗口,应该是点击就可以加载相应的对象了,截图: 来源: CSDN 作者: Eternally_陪伴 链接: https://blog.csdn.net/EternallyAccompany/article/details/103796399

503. 下一个更大元素 II

南笙酒味 提交于 2019-12-31 10:12:40
题目: 解答: class Solution: def nextGreaterElements(self, nums: List[int]) -> List[int]: stk = nums[::-1] ans = [-1 for _ in range(len(nums))] sz = len(nums) - 1 for ind, num in enumerate(nums[::-1]): while stk and stk[-1] <= num: stk.pop() ans[sz - ind] = -1 if not stk else stk[-1] stk.append(num) return ans 来源: CSDN 作者: sinat_15355869 链接: https://blog.csdn.net/sinat_15355869/article/details/103777135

aaaa

让人想犯罪 __ 提交于 2019-12-26 02:04:25
沪深港通资金数据hsgt_data 20191224 nan nan 0.0 20190628 nan nan 0.0 # -*- coding: utf-8 -*- import pandas as pd import tushare as ts import lxml from redis import Redis import hashlib import pymysql import time # =============================================================两市成交总额============================================================= def tradeTotalamount(conn_mysql,conn_redis,cur_date): # 定义计数器 success, fail, count = 0, 0, 0 # 定义两市总成交额 total_amount = 0 # 创建MySQL操作游标 cursor = conn_mysql.cursor() try: sql = '''insert into hs_total_amount_data(trade_date,total_amount) values('%s','%s')''' % (trade

聚宽源码11

丶灬走出姿态 提交于 2019-12-14 23:52:45
原文策略源码如下: #酒行业的中短线策略 def initialize(context): run_daily(period,time=‘every_bar’) g.stocksnum=6 def period(context): scu=get_index_stocks(‘000001.XSHG’)+get_index_stocks(‘399106.XSHE’) q=query(valuation.code).filter(valuation.code.in_(scu)).order_by(valuation.market_cap.asc()).limit(g.stocksnum) df=get_fundamentals(q) stocklist=list(df[‘code’]) m=get_current_data() buylist=stocklist for stock in context.portfolio.positions: if stock not in buylist: #如果stock不在buylist order_target(stock, 0) for stk in buylist: order_value(stk,15000) for stk in context.portfolio.positions: cost=context.portfolio

Mysql占位符插入

安稳与你 提交于 2019-12-05 08:59:11
mysql数据执行 con.execute('insert into Login values(%s, %s)' % \ (user_id, password)) con.execute('insert into Login values('%s', '%s')' %(user_id, password)) cursor.execute('insert into user (id, name) values (%s, %s)', ['1', 'Michael']) 爬虫 # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup import lxml import json import re import time import tushare as ts import pandas as pd import pymysql from sqlalchemy import create_engine pymysql.install_as_MySQLdb() def Tstockbasic(conn): # 调用stock_basic,获取股票代码、股票名称、所属行业、上市日期、上市场所 cursor = conn.cursor() # 读取数据库已存储数据 sql_stk_data = pd.read

puuuu

假装没事ソ 提交于 2019-12-05 07:33:21
hhhhhh # -*- coding: utf-8 -*- import requests from bs4 import BeautifulSoup import lxml import json import re import time import tushare as ts import pandas as pd import pymysql from sqlalchemy import create_engine pymysql.install_as_MySQLdb() def EMydSpider(conn, current): # 抓取东财个股盘口异动数据:http://quote.eastmoney.com/changes cursor = conn.cursor() header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3676.400 QQBrowser/10.5.3738.400"} url = "http://push2ex.eastmoney.com/getAllStockChanges?type=8201,8202

POJ Largest Rectangle in a Histogram

不羁岁月 提交于 2019-12-04 06:35:22
POJ2559 这道题可以说是单调栈求矩形最大面积的板子题了啊 Code: 1 #include <cstdio> 2 #define ll long long 3 using namespace std; 4 const int N = 1e5 + 7; 5 int n, height, top; 6 ll ans, tot, tmp; 7 struct node{ 8 int h, num; 9 //h存当前矩形高度 10 //num存当前矩形左侧比自己高的矩形个数, 也就是以当前的矩形高为高的矩形的宽度 11 }stk[N]; 12 int main () { 13 while (~scanf("%d", &n) && n) { 14 top = ans = 0; 15 for (int i = 0; i < n; i++) { 16 scanf("%d", &height); 17 tmp = 0; 18 while (top > 0 && stk[top - 1].h >= height) {//比新加进的矩形高的矩形先出栈 19 tot = stk[top - 1].h * (stk[top - 1].num + tmp);//先计算一下之前的最大面积 20 if (tot > ans) ans = tot;//更新答案 21 tmp += stk[top - 1]

【学习笔记】OI模板整理

两盒软妹~` 提交于 2019-12-04 04:54:40
CSP2019前夕整理一下模板,顺便供之后使用 1. 数据结构 1.1. 虚树 描述: 给定树上的 \(k\) 个关键点,构建出一棵虚树,只有关键点和任意两个关键点的LCA会被保留,且原树上的祖先关系和虚树上祖先关系保持一致。可以证明虚树最多有 \((2k-1)\) 个点。 把所有关键点按DFS序排序,用一个栈维护动态加点连边即可。时间复杂度 \(O(k\log n)\) . 注意事项: 一定要处理好最先加入栈中的点(所有点的LCA). 代码: addedge0_(u,v) 表示在 \(u\) 和 \(v\) 之间连边,边权根据实际情况确定。 bool cmp(int x,int y) {return dfn[x]<dfn[y];} void build() { sort(ky+1,ky+kyn+1,cmp); rt = ky[1]; for(int i=2; i<=kyn; i++) rt = LCA(rt,ky[i]).first; tp = 1; stk[tp] = rt; n0++; kid[n0] = rt; isky[ky[1]] = true; for(int i=(rt==ky[1]?2:1); i<=kyn; i++) { int u = ky[i],lca = LCA(stk[tp],u).first; if(lca==stk[tp]) {tp++; stk