【集训试题】SiriusRen的卡牌 set】的更多相关文章

题意概述: 给出N张卡牌,每张有三个属性a,b,c,同时给出所有属性可能的最大值A,B,C.对于一张卡牌,当这张卡牌至少有两个属性大于另外一张卡牌的对应两个属性的时候,认为这张卡牌更加优秀.现在问有多少种不同的卡牌优于给出的所有卡牌. N<=500000,0<A,B,C<=500000 分析: 来自己制造一张卡牌.先把所有卡牌按照a排个序,观察当自制卡牌的a=ai的时候会发生什么.可以观察到对于任意aj(1<=j<i),都有a>aj,所以对于这些卡只需要在bj,cj中有…
问题描述 小弱T在闲暇的时候会和室友打扑克,输的人就要负责洗牌.虽然小弱T不怎么会洗牌,但是他却总是输. 渐渐地小弱T发现了一个规律:只要自己洗牌,自己就一定会输.所以小弱T认为自己洗牌不够均匀,就独创了一种小弱洗牌法. 小弱洗牌法是这样做的:先用传统洗牌法将52张扑克牌(1到K各四张,除去大小王)打乱,放成一堆,然后每次从牌堆顶层拿一张牌.如果这张牌的大小是P(1到K的大小分别为1到13),那么就把这张牌插入到当前手中第P张牌的后面.如果当前手中不足P张牌,那么就把这张牌放在最后. 现在给你一…
http://acm.xidian.edu.cn/problem.php?id=1310 1. 这道题可以类比括号匹配,YY和yy是两组可以匹配的信号,当然要注意逻辑是否正确,一开始进行括号匹配算法的时候逻辑出了问题,导致卡在for循环里面出不来结果,这种时候不要只盯着代码看,拿着样例代入一下就知道哪里有写的不严密的地方. #include <bits/stdc++.h> using namespace std; int main() { string str; stack<char&g…
Description Solution 如图,假如我们知道了以任何一个点为顶点的135-180度的前缀和和90-180度的前缀和,我们就可以搞出三角形的面积. 差分.add[i][j]和dev[i][j]都表示相对点[i][j-1],点[i][j]应该+或-的大小.这样只要我们需要,可以在O(n2)的时间里求出整个图的前缀和. 然后,不可能每一次查询都求一次前缀和的.考虑分块.记录当前添加的修改的操作数cnt.如果cnt=2500,则把图的前缀和全部求出来,对cnt,add,dev初始化. 假…
Description Solution 设y[i+k]=y[i]+n. 由于我们要最优解,则假如将x[i]和y[σ[i]]连线的话,线是一定不会交叉的. 所以,$ans=\sum (x_{i}-y_{i+s}+c)^{2}$ 拆开得$ans=\sum (x_{i}^{2}+y_{i+s}^{2}+c^{2}-2x_{i}y_{i+s}+2x_{i}c-2y_{i+s}c)$ 其中,$x_{i}y_{i+s}$是卷积形式. 我们把经过处理的y数组reverse一下,和x数组进行卷积(这里用ntt…
Description Solution 将(u,v,l,r)换为(1,u,v,l)和(2,u,v,r).进行排序(第4个数为第一关键字,第1个数为第二关键字).用LCT维护联通块的合并和断开.(维护联通块的大小,要维护虚边) 答案统计:每当四元组的第一个数为1(这时候合并点u,v所在连通块,反之拆开),在合并前ans+=size[u]*size[v]即可. Code #include<iostream> #include<cstdio> #include<cstring&g…
Description Solution bitset是个好东西啊..强行压位什么的真是够orz. 由于所有的蘑菇上房间的长相是一样的,我们针对每个房间,算出它到根节点的bitset和以它为根的子树的bitset. 每次新开一个蘑菇,为了防止被卡空间,我们只是把指针指向蘑菇u的bitset,并且cnt[u]++.只有当对这个新蘑菇进行操作的时候,才给它单独开一个 bitset. 本题的题解一句话-优雅的暴力. Code #include<iostream> #include<cstdio…
Description A 联邦国有 N 个州,每个州内部都有一个网络系统,有若干条网络线路,连接各个 州内部的城市. 由于 A 国的州与州之间的关系不是太好,每个州都只有首府建立了到别的州的网络.具体来说,每个州的首府都只主动地建立了一条网络线路,连接到距离最近的州的 首府.(欧氏距离.如果有多个,选择标号最小的去连接) B 国探知了 A 国的网络线路分布情况,以及攻陷每条网络线路所需花费的代价,B 国首脑想知道断开 A 国某两个城市之间的网络连接,所需的最少代价.请你计算出来告 诉他. 注:…
Description Solution 首先,每个节点上的权值可以等价于该节点上有(它的权的二进制位数+1)个石子,每次可以拿若干个石子但不能不拿. 然后就发现这和NIM游戏很像,就计算sg函数em(然而我并不会推) 如果您恰好看到这篇博,又恰好有空的话,欢迎探讨~ Code #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std;…
Description Solution 本博客参考yww大佬的博客,为了加深理解我就自己再写一遍啦. 以下的“无向图”均无重边无自环. 定义f0[n]为n个点构成的无向图个数,f1[n]为n个点构成的无向图的总边数,f2[n]为所有(n个点构成的无向图的边数的平方)之和. g0[n]为n个点构成的连通无向图个数,g1[n]为n个点构成的连通无向图的总边数,g2[n]为所有(n个点构成的连通无向图的边数的平方)之和. 设$m[i]=i*(i-1)/2$ 每条边可以选或不选,所以$f0[i]=2^…