fa

[BZOJ4569] [Scoi2016]萌萌哒

余生颓废 提交于 2019-12-01 22:55:24
[BZOJ4569][Scoi2016]萌萌哒 好题! 倍增维护并查集合并 一个倍增数组 \(fa[i][j]\) 维护从 \(i\) 开始长度为 \(2^j\) 的这一段与那一段长度相同的并在一起 将两端区间 \(l1,r2,l2,r2\) 用倍增剖开,在那一层的倍增数组上用并查集合并 最后每次将 \(fa[i][j]\) 向 \(fa[i][j-1],fa[i+(1<<(j-1))][j-1]\) 递推即可 int n,m; struct UFS{ int fa[N]; int Find(int x) { return fa[x]==x?x:fa[x]=Find(fa[x]); } void init(){ rep(i,1,n) fa[i]=i; } void merge(int x,int y) { fa[Find(x)]=Find(y); } } B[18]; int LOG; int main(){ n=rd(),m=rd(); for(LOG=0;(1<<LOG)<=n;LOG++) B[LOG].init(); LOG--; rep(i,1,m) { int l1=rd(),r1=rd(); int l2=rd();rd(); if(l1==l2) continue; int len=r1-l1+1; drep(j,LOG,0) { if(len>=(1<<j)) {

HDU 6326 Problem H Monster Hunter

泄露秘密 提交于 2019-12-01 11:30:45
\(\mathtt{Problem H}\) \(\mathtt{Monster}\) \(\mathtt{Hunter}\) \(\mathcal{Description}\) 题目 给定一棵 \(n\) \((n \leq 10^6)\) 个点的树,除 \(1\) 号结点外每个结点都有一只怪兽,打败他需要先消耗 \(a_i\) 点 \(HP\) ,击败后可以获得 \(b_i\) 点 \(HP\) ,求打败所有怪兽需要的最小 \(HP\) 。 \(\mathcal{Solution}\) 先不考虑父亲的限制关系,考虑最优攻击顺序。 对于 \(a_i < b_i\) \(a_j < b_j\) 的怪兽,那 \(a\) 小的优先。 对于 \(a_i \geq b_i\) \(a_j < b_j\) 的怪兽,那优先 \(a < b\) 的。 对于 \(a_i > b_i\) \(a_j > b_j\) 的怪兽,那 \(b\) 大的优先。 然后再来考虑父亲的限制,对于每个儿子,如果他的优先级大于他的父亲的优先级,那我们可以把他并到他的父亲节点上,假设下次的优先级最高的是兼并后的父节点,相当于先干掉了优先级更高的子节点而后干掉父节点。 \(\mathcal{Code}\) #include<bits/stdc++.h> using namespace std; const int N =

rbac08 图标样式

我只是一个虾纸丫 提交于 2019-12-01 09:10:15
   from django import forms from rbac import models from django.utils.safestring import mark_safe ############safe#################3 class MenuModuleForm(forms.ModelForm): class Meta: model = models.Menu fields="__all__" error_messages={ 'title': { 'required': "该字段不能为空!" }, 'icon':{ 'required':"必须选择图标!" } } widgets={ 'title':forms.TextInput(attrs={'class':'form-control'}), 'icon':forms.RadioSelect(choices=[ #######RadioSelect ==》 列表套列表 ['fa-address-book-o',mark_safe('<i class="fa fa-address-book-o" aria-hidden="true"></i>')],#########标记安全 ['fa-id-card-o',mark_safe('<i class="fa fa-id-card-o"

9.16题解

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-30 23:20:19
这套题总的来说,由于出题人的数据非常水,所以我用各种方法水了过去 T1 暴搜+剪枝 剪枝一 如果$gcd$已经变成了1那么就没有继续走下去的必要,直接用最长序列长度尝试更新答案,然后直接$break$即可 剪枝二 如果你当前的$gcd$乘上最长的区间长度,对答案也不能作出贡献,那么你已经用了最长序列长度,且越往后走$gcd$会变的越小,那么答案永远不会变优,就也没有继续下去的必要了,$break$即可 然后就水过这道题 1 #include<iostream> 2 #include<cstdio> 3 #define maxn 100100 4 #define int long long 5 using namespace std; 6 int n,ans; 7 int a[maxn]; 8 int gcd(int a,int b) 9 { 10 return b==0?a:gcd(b,a%b); 11 } 12 signed main() 13 { 14 //freopen("1.in","r",stdin); 15 scanf("%lld",&n); 16 for(int i=1;i<=n;++i) scanf("%lld",&a[i]); 17 for(int i=1;i<=n;++i) 18 { 19 int GCD=a[i]; 20 for(int j=i+1;j<=n;

【模板】并查集

半腔热情 提交于 2019-11-30 21:41:09
1 const int maxn = 100010; 2 int fa[maxn]; 3 4 int find(int x) 5 { 6 if (fa[x] == x) return x; 7 fa[x] = find(fa[x]); 8 return fa[x]; 9 } 10 11 void merge(int a, int b) 12 { 13 fa[find(a)] = find(b); 14 } 15 16 bool check(int a, int b) 17 { 18 return find(a) == find(b); 19 } 来源: https://www.cnblogs.com/thjkhdf12/p/11641409.html

【模板】lca

我是研究僧i 提交于 2019-11-30 00:58:18
int lca(int u, int v){ if(dep[u] < dep[v]) swap(u, v); for(int i = 20; i >= 0; --i){ if(dep[fa[u][i]] >= dep[v]) u = fa[u][i]; } if(u == v) return u; for(int i = 20; i >= 0; --i){ if(fa[u][i] != fa[v][i]) u = fa[u][i], v = fa[v][i]; } return fa[u][0]; } dep用dfs处理,dfs中顺便处理f数组 fa[u][0] = f, dep[u] = dep[f] + 1; for(int i = 1; i <= 20; ++i) fa[u][i] = fa[fa[u][i - 1]][i - 1]; 来源: https://www.cnblogs.com/xiaobuxie/p/11542427.html

正则匹配ipv4和ipv6

倾然丶 夕夏残阳落幕 提交于 2019-11-29 20:49:19
import sys import re def is_ipv4(ip): p = re.compile( '^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$') if p.match(ip): return True else: return False def is_ipv6(ip): p = re.compile('^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]

更丰富的符号工具包 Font Awesome

梦想与她 提交于 2019-11-29 12:06:31
我时常想要在此类文档中通过一些 图形符号 来表达更丰富的含义或是对段落进行标注,例如使用 Emoji。然而 Emoji 在这方面仍然有存在一些不足,如: 颜色与文字风格不统一, 在不同系统的平台上显示不统一, 种类有限,很多时候找不到合适的表情。 这时,可以在文档写作时引入另一个更丰富的符号工具包 Font Awesome 。 简介 Font Awesome 是一个字体和图标工具包,包含人物、动物、建筑、商业、品牌等等各种主题丰富的图标符号,可以通过相应的语法添加在 Markdown 文档中,像 Emoji 一样配合文字使用。它提供了 Font Awesome Free 和 Font Awesome Pro 两个方案,前者可以免费使用,后者需要付费以使用更多图标。但实际上免费方案中就提供了上千个图标,足够日常使用。 准备工作 要在 Markdown 文档中输入 Font Awesome,需要在文档中任意位置贴粘入如下语句(可以放在文档结尾处,以不影响直接在 Markdown 文档中的阅读): <head> <script defer src="https://use.fontawesome.com/releases/v5.0.13/js/all.js"></script> <script defer src="https://use.fontawesome.com/releases

常见字体图标库——font-awesome

安稳与你 提交于 2019-11-29 02:31:19
1.简介 FontAwesome一种带有网页功能的象形文字语言,并收集在一个集合里。字库中有675个图标,只支持英文搜索,中文地址 : http://www.fontawesome.com.cn/ 2.使用方法 (1)在主页上下载最新版,压缩文件。 (2)不用修 改文件名 ,将文件解压后,放到项目中 使用 CSS 复制 font-awesome 目录到你的项目中 在 <head> 处加载font-awesome.min.css如下。 <link rel="stylesheet" href="path/to/font-awesome/css/font-awesome.min.css"> 使用 Sass or Less 使用 LESS or SASS 来个性化自定义Font Awesome 4.7.0 复制 font-awesome/ 目录到你的项目中。 打开你项目中的 font-awesome/less/variables.less 或 font-awesome/scss/_variables.scss 然后编辑 @fa-font-path 或 $fa-font-path 变量来指定字体目录。 @fa-font-path: "../font"; 字体的路径是相对于你CSS目录的。 如果你使用一个静态编译器,请重新编译你的 LESS 或 SASS。 当你已经知道 如何开始 使用Font

(更新中)Markdown学习笔记(2):Markdown进阶

北战南征 提交于 2019-11-28 15:10:41
原文引用 大专栏 https://www.dazhuanlan.com/2019/08/26/5d63571970f75/ Tim开始了对Markdown高阶用法的探索! 在Markdown中,我们时常要调用一些小图片,而这些小图片如果去网上找或者上传图床会十分的麻烦。此时,一种一站式解决方案出现了——Font Awesome Font Awesome是一个图标站,并且可以方便的调用刀Markdown、HTML中,所以这是一个很强大的工具。今天就来学习一下在Markdown语言中Font Awesome的用法 Font Awesome基础 添加图标 效果: 我的微信 使用方法: 第一步:在 Font Awesome的CDN站 注册并获取自己的js文档 这里使用CDN站是因为Font Awesome的主站在国内访问比较慢,CDN站速度会快很多 之后,我们便获取了一个专属的js文档 <script src="https://use.fontawesome.com/你的专属码.js"></script> 第二步:将这个js文档插入Markdown文档 <head> <script src="https://use.fontawesome.com/你的专属码.js"></script></head> 我们需要将上面这段代码插入Markdown文档的任意位置 第三步:在文章中调用图标文档