随笔分类 - 规律-思维
摘要:#include using namespace std; typedef long long ll;/* 就是n*m的格子,然后有一种超级刷子,可以随机选两个坐标,然后坐标作为顶点的矩形都被染色, 这个刷子可以用k次,求被刷格子的期望,注意,随机的两个坐标,可以选一个格子 考虑每个格子对期望的贡献p,那么1-(1-p)^k就是这个格子的总贡献 求p不好求,发现1-p比较好求,考虑(x,...
阅读全文
摘要:#include using namespace std; const int maxn=1e3+5; int val[maxn][maxn],l[maxn],r[maxn],h[maxn]; int ans,lmax,rmax,n,m,j; void solve(){ ans=0; for(int i=1;il[j])l[j]=lmax; }else h[j]=0,l[j]=1,r...
阅读全文
摘要:1 #include 2 using namespace std; 3 typedef long long ll; 4 const int maxn=3000; 5 6 /* 7 n m >n>>m){ 27 28 solve(n,cnt1); 29 solve(m,cnt2); 30 31 ll ...
阅读全文
摘要:题意:一款游戏有n个关卡,正常条件下第i个关卡耗时ai,游戏中存在一个加速器,如果在某个关卡获得这个加速器,那么在这之后的关卡中使用的时间为bi 在每个关卡获得加速器的概率是pi,如果你可以随便安排关卡的顺序,那么输出最少的通关的期望时间 考虑Ci=Ai-Bi,那么按照给定顺序的期望是B1+...B
阅读全文
摘要:题意:给n(n为奇数)个数,接下来给出n个数,并且其中一个数出现大于等于(n+1)/2次,请输出那个数 分析:数不多,可以map记录每个数的个数,然后迭代器寻找就可以了 也可以充分利用数大于一半的条件 #include<bits/stdc++.h> using namespace std; cons
阅读全文
摘要:题意:1 2 ....n,这些边中最少抽出多少条边,使得剩下的边无法组成三角形 分析:开始的时候有点zz,IDA*跑了一发,2^(n-2)*n^3,跑了5min出了17,剩下的怎么都出不来了,然后YY了一下n和ans[n]之间的差,就过了,后来想了一下使得剩下的边都不能组成三角形,只要剩下的都是Fi
阅读全文
摘要:题意:n个队进行足球比赛,每两个队之间进行一次比赛,给出最后每个队的得分,判断得分集合是否合法 比赛判断奇数和偶数个数以及sum=n*(n-1)水过的,赛后看了叉姐题解,记了下结论 然后自己xjb证了下,要保证最后总得分为n*(n-1),那么我先把所有得分排序,那么x1<=s2<=s3...<=sn
阅读全文
摘要:给定一个0-1串s,长度为n,下标从0开始,求一个位置k,满足0<=k<=n, 并且子串s[0..k - 1]中的0的个数与子串s[k..n - 1]中1的个数相等。 注意: (1) 如果k = 0, s[0..k - 1]视为空串 (2) 如果k = n, s[k..n - 1]视为空串 (3)
阅读全文
摘要:有N个岛连在一起形成了一个大的岛屿,如果海平面上升超过某些岛的高度时,则这个岛会被淹没。原本的大岛屿则会分为多个小岛屿,如果海平面一直上升,则所有岛都会被淹没在水下。 给出N个岛的高度。然后有Q个查询,每个查询给出一个海平面的高度H,问当海平面高度达到H时,海上共有多少个岛屿。例如: 岛屿的高度为:
阅读全文
摘要:题意:有n页书,每页有个编号为ci的知识点,求最小看连续的页数,其中包括所有的知识点 分析:n<=1e6,只能搞O(n)的解法,无非就是枚举起点和终点,尺取法正好适合这个想法,枚举一个起点,然后往后扫描到区间内包括所有的知识点,然后每次起点都往右移动一次,直到扫描到右边界也没有答案了,就跳出 程序跑
阅读全文
摘要:题意:n个数,求最短的子序列和>=s 分析:尺取法,也叫蠕虫法,每次枚举起点,然后往右移动,找到右边界 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; const
阅读全文
摘要:题意:1-n个数,求错排后序列的种数,mod1e9+7 错排公式 f[n]=(n-1)*(f[n-1]+f[n-2])
阅读全文
摘要:题意:给一个序列,n个数,可以进行k次操作,每次可以交换相邻的两个数,问最多k次操作后最少剩余多少个逆序对 分析:如果序列中存在逆序对,那么每次操作,只会影响相邻的两个数,也就是说每次操作最多减少1个逆序对,那么只要求出原来序列的逆序对ans 输出max(ans-k,0) #include<iost
阅读全文
摘要:题意:给你n个蛋糕,有长和宽,高度均为1,所有的蛋糕可以切除多余部分作为目标蛋糕的一层,但是小的不可以要,切除的部分扔掉(太浪费了),每层蛋糕大小要求都一样,求最大体积 分析:当时犯傻了,按照宽排序,选取一个宽,然后选择比这个宽大的长的最小,过了14组数据,后来又遍历所有数据,n3的算法超了 第二天
阅读全文
摘要:题意:给你一个n位数(保证首位不为0),去除m位数,要求输出此操作后的数最大 分析:首先,前面的数大比后面数大影响要大,首先要保证前面的数大,开始的思路是,首位必须是最大,那么从前n-m+1个数中选择最大的数,并且记录每次取的数的原位置,然后每次把剩下的数字依次加入,如果取出来的数的坐标在已经取了的
阅读全文
摘要:题意:n*m的网格,每个网格10m的正方形,网格四周是无限大的墙壁,输入每个格子的高度和洪水的体积,求水位的高度和淹没的面积。 分析:水肯定是先淹没高度低的,后淹没高度高的,所以对所有海拔排序,从低向高遍历,直到遇到不能淹没的网格停止。 1 #include<iostream> 2 #include
阅读全文

浙公网安备 33010602011771号