题目分享G 二代目】的更多相关文章

题意:有n组数,每组包含两个数,问在每组只能取一个的前提下能组成的最长的从1开始的连续自然数有几个? 分析:刚学了差分约束系统,很容易往转换成图的方向去想 将他读入的这n组数当成边读入 很容易会得到一个图,这个图不一定是连通的, 我们暂时先把他所有极大连通子图划分为两种:一种是 属于树的,另一种是 不属于树的 显然,1234是属于树的,而5678则不属于树 对于树来说,显然n个节点的树只能选出n-1个节点来, 这个是很容易证明的,如果我们把不选的那个节点作为根节点,那么显然其他的节点是都可以选的…
题意:一棵点数为n的树,每个节点有点权,要求在树中中找到一个最小的x,使得存在一个点满足max(该点点权,该点相邻的点的点权+1,其他点的点权+2)=x 分析:首先要能把题目转化为上述题意 首先题目让你选取一个点为根节点, 然后断掉这个点 让相邻的点与二次相邻的点的点权+1 然后剩下每次只能断掉与该点相邻的点, 断掉后处理与根节点断掉的处理一致 显然,对于任何一个根节点的儿子来说,他的权值一定只被+1 而对于其他节点来说,他的权值一定在他父亲断掉时和爷爷断掉时分别+1,也就是+2 那么我们现在转…
题意:给定一个T条边的无向图,求S到E恰好经过N条边的最短路径 T≤100 N≤1000000 分析:(据说好像假期学长讲过) 首先很容易想到的是dp[i][j][k]表示从i到j经过k条边的最短路径 显然是会mle以及t的 不过不妨碍我们yy一下这种错误的做法 dp[i][j][k]=min(dp[i][j][k],dp[i][p][k-1]+mapp[p][j]) 其中p是枚举的中间点,mapp是直接连接i与j的边的长度 也就是说i->j走k条边的路径可以转化为i->p走k-1条边再从p走…
题意:一个数列是由 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6.....组成,也就是1-1,1-2,1-3......并且如果遇到多位数也要拆成数字比如1-10就是1 2 3 4 5 6 7 8 9 1 0共11个数字,问第K位是几? 分析:这可能是分享题里比较考验代码能力的题了, 这题唯一运用的算法可能就是二分吧 大体过程也非常好想 就是先确定离他最近且小于他的1-n是几,再算出来他是1-n+1中的答案 比如我要找11 那么离他最近且小于他的 1-n这个…
题意:有m个限制,每个限制l1,r1,l2,r2四个数,限制了一个长度为n的数第l1到r1位要与第l2到r2相同,保证r1-l1=r2-l2,求在限制下一共有多少种数 分析: 暴力的话肯定是从l1-r1扫一遍用并查集,但显然时间和空间都是不允许的 但再一想,这是不是相当于区间并?操作 看到区间的东西,我直接就往线段树去想了 #include<cstdio> #include<map> #include<algorithm> using namespace std; #d…
题意:T个点R种双向边,P种单向边,求点S到每个点的最短距离 分析:(这再看不出来是spfa就该**了) 首先,这题能否用spfa就看他是否有负环呗,显然,双向边的权值非负,单向边还有个啥政策,总之显然是没有负环了 那么直接跑裸的spfa 没想到竟然t了 难不成spfa还有优化? 我带着怀疑的心情上了百度,艹还真有 SLF优化: SLF优化,即 Small Label First  策略,使用 双端队列 进行优化. 一般可以优化15%~20%,在竞赛中比较常用. 设从 u 扩展出了 v ,队列中…
问题 G: 多少个0 时间限制: 1 Sec  内存限制: 128 MB提交: 192  解决: 40 题目描述 一个n*n的方格,每个格子中间有一个数字是2或者5,现在从方格的左上角走到右下角,每次只能选择向下或者向右移动一格两种移动方式,让所有经过的格子中的数字相乘,求使最后的结果中末尾处0的数字最少. 输入 第一行是一个正整数n(0<n<100). 接下来n行是一个n*n的矩阵. 输出 一个正整数m,表示最后的结果末尾处最少有x个0. 样例输入 4 2 5 2 5 5 2 5 2 2 5…
有需要学习交流的友人请加入交流群的咱们一起,有问题一起交流,一起进步!前提是你是学技术的.感谢阅读! 点此加入该群​jq.qq.com 1. php 的垃圾回收机制 PHP 可以自动进行内存管理,清除不需要的对象. PHP 使用了引用计数 (reference counting) GC 机制. 每个对象都内含一个引用计数器 refcount,每个 reference 连接到对象,计数器加 1.当 reference 离开生存空间或被设为 NULL,计数器减 1.当某个对象的引用计数器为零时,PH…
解决数独 题目描述 编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次. 空白格用 '.' 表示. 一个数独. 答案被标成红色. Note: 给定的数独序列只包含数字 1-9 和字符 '.' . 你可以假设给定的数独只有唯一解. 给定数独永远是 9x9 形式的. 输入格式: [["5","3",&qu…
题意:一张票有n位数,如果这张票的前一半数字的和等于后一半数字的和(n一定是偶数),就称这张票为快乐票.有些数被擦除了,标记为’?’(’?‘的个数也是偶数),现在Monocarp 和 Bicarp 进行一个游戏,两人轮流将’?'变换成0到9的任意一个数,Monocarp先手,如果最后票为快乐票则Bicarp赢,否则Monocarp赢. 分析:这...没想到5分钟就过了,可能是这种题的套路见多了... 首先,将题目转换成左边x个问号,现有和为sx,右边y个问号,现有和为sy,然后再开始写数 首先不…
题意:现在两个人做游戏,每个人刚开始都是数字1,谁赢了就能乘以k^2,输的乘以k(k可以是任意整数,每次不一定相同)现在给你最终这两个人的得分,让你判断是否有这个可能,有可能的话Yes,否则No. 分析:这题其实想起来也很好想,写起来也很好写,主要还是分享一下处理类似细节的方法 首先还是先回归到这个题,显然如果满足条件,首先a*b=x³,a,b分别为这两人的最终得分,然后考虑一下还需满足什么性质 我们还是从只有一轮开始考虑,a=k²,b=k,a*b=k³,这里就很容易想到几种判断方法,比如a=b…
题意:蛐蛐国里现在共有n只蚯蚓(n为正整数).每只蚯蚓拥有长度,我们设第i只蚯蚓的长度为a_i(i=1,2,...,n),并保证所有的长度都是非负整数(即:可 能存在长度为0的蚯蚓).每一秒,神刀手会在所有的蚯蚓中,准确地找到最长的那一只(如有多个则任选一个) 将其切成两半.神刀手切开蚯蚓的位置由常数p(是满足0<p<1的有理数)决定,设这只蚯蚓长度为x,神刀手会将其 切成两只长度分别为[px]和x-[px]的蚯蚓.特殊地,如果这两个数的其中一个等于0,则这个长度为0的蚯蚓也会被 保留.此外,…
题意: 给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始,双方轮流进行 操作.当一方操作时,他们需要先选择一个不为根的点,满足该点到其父亲的边权为1; 然后找出这个点到根节点的简单路径,将路径上所有边的权值翻转(即0变成1,1 变成0 ).当一方无法操作时(即所有边的边权均为0),另一方就获得了胜利.如果在双方均采用最优策略的情况下,女生会获胜,则输出“Girls win!”,否则输 出“Boys win!”.为了…
题意:给出一个n个点n条边的图且不一定连通(原题面为每个节点出度为1),相邻节点不能同时被选,每个节点有其对应价值,求最多能获得多少价值?n<=1e6,val[i]<=1e6 分析:很容易想到,如果这个图是n个点n-1条边而且连通的话,那么这个图肯定是一棵树,这用树形dp是很好实现的 dp[x][0]表示x节点不选,其子树(包括x)能产生的最大价值 dp[x][1]表达x节点选,其子树(包括x)能产生的最大价值 那么dp[x][0]+=max(dp[v][1],dp[v][0]) dp[x][…
题意:有n只蚂蚁在木棍上爬行,每只蚂蚁的速度都是每秒1单位长度,现在给你所有蚂蚁初始的位置(蚂蚁运动方向未定),蚂蚁相遇会掉头反向运动,让你求出所有蚂蚁都·掉下木棍的最短时间和最长时间. 分析:(其实很久之前在洛谷上就做过一个类似的题,好像叫独木桥) 考虑对于两个人相遇的过程,以及最后结果的最值 第一个人位置为x1,第二个人位置为x2,其中x2>x1 这里就有两人分别朝左朝右共有4种情况 1.第一个人朝左,第二个人朝左 显然第一个人掉下去的时间是x1,第二个人掉下去的时间是x2,总用时就是x2…
题意:给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 分析:这可以说是换根法的裸题吧 首先考虑对一个给定的根如何计算,这应该是最简单的那种树形dp吧甚至可能都不算dp(好像还真不算dp) dp[i]表示i点所有孩子(包括自己)的深度之和 deep[i]表示i点的深度 dp[x]=sum(dp[v]) +deep[x]    v|v是x的子节点 用一遍dfs即可搞定dp[1]-dp[n] 当然这里用谁为根都可以,用1就行 比如我们现在已经处理出dp[1]-dp[n]的值…
题意:有辆车,有r行,s*2列,在第s列和第s+1列之间有个过道,出口在第r+1行的过道处,现在给出每个人的位置(行号和列号),每人每次只能动一格,问最少耗费多长时间全员才能逃出去 分析:假如车上只有一个人,这个人位于x行y列,那他的逃生时间很好求 若y<=s,那所需时间就是s+1-y(走到过道)+r+1-x(在过道中走到出口)=s+r-x-y+2 若y>s,那其实可以将y对称到y'上,然后y'就能和y<=s时一样计算了,而y'=2*s+1-y,也就是说所需的时间是s+r-x-y'+2,…
题意: 其实就是找到AB+min(AC,BC)的最大值 分析:刚看到这道题,很容易往AB为树的直径方向上去想,C就可以遍历每个点,最后求出对于每个点为C时的最大值 那AB到底是不是树的直径或者为什么AB是树的直径呢? (下面是我自己yy的证明方法,可能有不严谨甚至有错误,望指正) 所有的ABC都可以用这个模型来代替 也就是在AB这条链上会长出C这样一条分支 我把AB与C链的交点叫做D 对于BD CD AD 这三段,将其中较长的两条作为“AB链”,最短那条作为“C链”会更优 证明:设AD=a,BD…
题意:n个人围成一个环,每个人初始有一些金币,每个人可以把金币递给相邻的人,问最少传递多少金币使每个人金币数相同? 分析:首先在保证最优的情况下不可能会出现相邻的两个人互相送金币,因为这样他们公共的部分等于没送,那么我们就可以用bi来表示i号人往左边送的金币,可以为负,为负就表示左边送回来,那么,如果设p为金币相等时每人的金币数(总金币的平均数),ai为i号人原始的金币数,那么很容易得到: a1-b1+b2=p a2-b2+b3=p …… an-bn+b1=p 而我们要求的是bi的绝对值之和,所…
题意:从一棵树的树根出发,除树根外每个节点都有其能经过的最多次数与经过后会获得的价值(可能为负,最多只能领一次价值),问最终走回树根能获得的最大价值以及有无可达到此价值的多种走法(ps:一开始在树根就可以选择不走,也就是说最终价值总和不可能为负) 分析:首先给定最多经过次数为x,那么也就是说最多能从该节点x-1个儿子赶回该节点,自然想到贪心,这里我用的是优先队列,当然dp[i]表示从该节点往自己若干个儿子走完并回到i节点的价值总和的最大值,也就是任意一条以i为起点i为终点的路径上价值之和的最大值…
题意:2*n的地面,q次操作,每次操作将地面翻转,若该地是地面那翻转就成熔岩,如果是熔岩那翻转就成地面,熔岩人不能走,问人是否能从1,1走到2,n (ps:1,1和2,n不会在翻转的范围内,n,q≤1e5) 分析:显然如果有1,k与2,k或2,k+1或2,k-1同时为岩浆,则这条路不通,其实完全可以拿个cnt记录一下,但我看了一眼n才1e5,直接写的线段树,一样能过,线段树数组存的是2,1~2,n中总共能构成岩浆墙的个数,可能会重复统计如1,k在2,k-1和2,k都会加一次,1,k和1,k+1都…
题意:开关问题,有n只奶牛朝前或朝后,要使这n只奶牛全部朝前,每次能且必须翻转k只奶牛,求在最少翻转次数下的最小的k值,n≤5000 分析:n²暴力直接水过......枚举k值,对于每个k值因为最左边的点只能被一种翻转所影响:1-k,而比如左边第二个点可以被两种翻转所影响:1-k,2-k+1,而且如果同一种翻转执行两次则恢复原样,那么因为最左边只能被一种翻转所影响,所以先保证最左边朝前,而保证完最左边之后1-k这一种翻转已经固定了,如果再使用就会恢复原样,那么原来第二个点收到两种翻转所影响,而现…
昨天在群里看见一个Python的问题,趁着今天有那么一点点时间,就想把这个题目分享出来,让大家一起解决.毕竟三个臭皮匠,赛过诸葛亮.原始数据如下: 1 origin_lst = [0, 0, 1, 2, 3, 4, 4, 5, 6, 6, 6, 7, 8, 9, 4, 4] 期望得到的结果是: 1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 4] 实现过程 方法一 这里[老松鼠]给了一份代码,如下所示: Python学习交流Q群:660193417#### import ite…
地址:http://acm.uestc.edu.cn/#/problem/show/1564 题目: G - GC?(X,Y) Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 131071/131071KB (Java/Others) One positive integer can be represented by the product of some prime numbers. Sort the prime numbers…
经过几天的雾霾,魔都终于放晴了.哥投了几天的简历,希望找到一份.NET开发方面的岗位.也收到了几个面试邀请.这不应Ge老师的要求,选了个良辰吉日,带着身份证,学位证怀揣着2B青年的梦想来这个XX公司面试.我答应Ge老师的电话邀请的一个重要原因是该公司位于北京广播电视大学学习中心.俺们是农村来的,但也听过北京广播电视大学的大名,做为二十六七仍单身的我,能有机会和广播电视大学的众美女工作在同一楼层,自然是求之不得,心情那个爽. 大概早上9点多,我进了9层906A室,一个漂亮的前台妹妹眼睛很亮,温柔的…
There is a rectangular grid of size n×mn×m . Each cell has a number written on it; the number on the cell (i,ji,j ) is ai,jai,j . Your task is to calculate the number of paths from the upper-left cell (1,11,1 ) to the bottom-right cell (n,mn,m ) meet…
[题目]G. Partitions [题意]n个数$w_i$,每个非空子集S的价值是$W(S)=|S|\sum_{i\in S}w_i$,一种划分方案的价值是所有非空子集的价值和,求所有划分成k个非空子集的方案的价值和.1<=k<=n<=2*10^5,1<=wi<=10^9. [算法]斯特林数 [题解]首先价值与具体数字没有关系,即: $$ans=num*\sum_{i=1}^{n}w_i$$ 其中num表示1在每个k划分方案中所在集合的大小的和. 考虑一种角度,所在集合的大…
[题目]G. Coprime Arrays [题意]当含n个数字的数组的总gcd=1时认为这个数组互质.给定n和k,求所有sum(i),i=1~k,其中sum(i)为n个数字的数组,每个数字均<=i,总gcd=1的方案数.n<=2*10^6.答案将所有sum(i)处理成一个数字后输出. [算法]数论(莫比乌斯反演) [题解]假设当前求sum(k),令f(i)表示gcd=i的数组方案数,F(i)表示i|gcd的数组的方案数. 因为F(x)=Σx|df(d),由莫比乌斯反演定理,f(x)=Σx|d…
/** 题目:G - Harmonic Number (II) 链接:https://vjudge.net/contest/154246#problem/G 题意:给定一个数n,求n除以1~n这n个数的和.n达到2^31 - 1; 思路: 首先我们观察一下数据范围,2^31次方有点大,暴力会超时,所以我们看看有没有啥规律,假设 tmp 是 n/i 的值,当n == 10的时候(取具体值) 当 tmp = 1 时,个数 是10/1 - 10/2 == 5个 当 tmp = 2 时,个数 是10/2…
题目链接G题 题意 序列 \(a_1,a_2,⋯,a_n\) 是一个排列, 当且仅当它含有 1 到 n 的所有整数. 排列 \(a_1,a_2,⋯,a_n\) 是一个有向图的拓扑排序,当且仅当对于每条边 \(u→v\),这个排列中 \(u\) 都出现在 \(v\) 之前. 给定一个有向无环图,添加至多 k 条有向边,使图保持无环,且字典序最小的拓扑排序字典序最大 思路 很有意思的一道构造题. 主要想法就是字典序较大的连边限制字典序小的. 两个堆:一个小根一个大根(小根堆是当前可以填写的节点集合,…