NOI十连测 第三测 T1】的更多相关文章

这么二逼的题考试的时候我想了好久,我真是太弱了... 首先,由于ans都乘上了i*(i-1)/2,实际上要求的就是每个数的所有可能出现次数*这个数的权值. 我们发现,每个数的本质是一样的,我们记一个sum为数的总和,这样只要统计一次就OK了. 我们把每次的选择抽象成有向边,每个状态视为点,这样就构成一个有根树. 如图 我们只考虑1对答案的贡献.如图,在每层计算当前合并对答案的贡献,也就是要能得知我在这个节点选择合并1或者1的联通块,那么我能覆盖到几个叶子节点? 那么就变成O(n)的组合数学题了.…
本文转载自:微信公众号-数列科技<二十问全链路压测干货汇总(上)> 最近几年全链路压测无疑成为了一个热门话题,在各个技术峰会上都可以看到它的身影. 一些大型的互联网公司,比如阿里巴巴.京东.滴滴等,都已将全链路压测应用到了生产环境. 笔者曾有幸深度参与到阿里巴巴全链路压测体系的建设,以及与阿里内部其他技术团队.物流.社交电商.品牌企业等CTO或者CIO技术交流之后, 关于如何保障企业数字化过程中的性能稳定方面,有了一个共识:全链路压测是建立IT性能管理体系的抓手和必选项. 1.什么样的公司需要…
ASP.NET MVC深入浅出(被替换)   一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模式,ViewState功不可没,通过的控件的拖拽和绑定,很快就可以搭建出来一个Web项目,其开发速度远胜Java.PHP,当年Web项目并不很重视体验,没有今天响应式,没有各种前端js框架,所以在当年的WebForm,微软是以引以为豪的. 该框架毕竟有时代局限性,随着前端的崛起,随着人们对项目体验…
NOI.AC省选赛 第五场T1 A. Mas的童年 题目链接 http://noi.ac/problem/309 思路 0x00 \(n^2\)的暴力挺简单的. ans=max(ans,xor[j-1]+xor[j-1]^xor[i]); 01trie树求最大异或和相信大家都会.不会看这里. 这与我们今天这个题目有关吗? 毫无关系. xor[i]的某一位为1,xor[j]的那一位不管是啥,贡献都是为1. 而xor[i]的某一位为0,xor[j]的贡献是2或0.(xor[j]位上为1贡献为2) (…
「NOI十联测」深邃 要使得最大的连通块最小,显然先二分答案. 先固定1结点为根. 对于一个果实,显然是先处理子树中未分配的点,再向外延伸. 每个结点记录一个\(si[]\),表示子树中未分配的点数,若为负数,则绝对值代表可以向外延伸的点数. 对于每一个结点\(i\): ​ 统计儿子中可以向外延伸的点数的最大值MIN,若该结点本身为果实,也算在内(因为\(i\)结点只能分到一个联通块,而每一个可以延伸的结点必定会占用\(i\)结点,故只有\(MIN\)是有用的). ​ 统计儿子中未分配的点数S.…
「NOI十联测」奥义商店 若lzz想花费最少的钱,那么显然要选择数目较少的颜色. 先考虑暴力的写法. 每次向两边统计,每个物品要求被买的概率可以由上一个物品推出. now=1;//now 被买概率 M 选择的颜色的数目 for(int q=1;st+d*q<=n&&q<=cnt[1];++q){ now*=(M-q+1.0)/(n-1-q+1);//当前点被涂上选择的颜色的概率 * 先前的物品也涂上选择的颜色 ans+=val[st+d*q]*now; } now=1; for…
「NOI十联测」黑暗 \(n\) 个点的无向图,每条边都可能存在,一个图的权值是连通块个数的 \(m\) 次方,求所有可能的图的权值和.(n≤30000,m≤15) 令\(ans[n][m]\)为n个点,图的权值是连通块个数的 m 次方,最终的答案. \(g[i]\)为\(i\)个点无向联通图数目. 一个图,若连通块数T增加1,那么贡献为\(\displaystyle (T+1)^m=\sum_{i=0}^m C_m^i T^i\). 这里选取\(i\)个点组成一个连通块(包含一个指定的点),联…
思路: 用treap动态维护,记一个sum1,sum2,注意!,写treap如果有删除操作,千万不能把权值相同的分开来..,这在删除的时候会进入死循环,这是一个惨痛的教训... #include<cstdio> #include<cmath> #include<cstring> #include<iostream> #include<algorithm> #include<time.h> #define ll long long st…
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> ][],n,type,V[],g[][],ans,cnt; ]; int read(){ ,f=;char ch=getchar(); ;ch=getchar();} +ch-';ch=getchar();} return t*f; } int fun(int x,in…
思路:首先每个蚂蚁移速相同,而且碰到就转头,这其实等价于擦肩而过! 看到2n个数互不相同就觉得方便多了:枚举每个数字往左或者往右作为最慢,然后考虑其他蚂蚁有多少种走路方向. (1),走的距离大于m/2 假如红色描述的是一个蚂蚁的移动轨迹,那么蓝色部分左边的蚂蚁只能向左走,蓝色右边的蚂蚁只能向右走. 而蓝色部分中的蚂蚁可以向左也可以向右,方案数为2^n,n为蓝色部分蚂蚁数量. (2),走的距离小于m/2 如图,则蓝色部分左边的蚂蚁只能向左,蓝色部分右边的蚂蚁只能向右.而蓝色部分中间不能有蚂蚁!,这…