这是我遇到的一个非常有趣的问题:有一个有向树,每个节点的权重随时间变化,我必须找到从根到某个节点的距离.
问题陈述:
从队列到达计数器的预期时间取决于该队列中的人数加上其他队列中的人数.
例如,如果有2个队列中每个包含3个粉丝,则队列1中的前导人员将首先发送,然后是队列2中的前导人员,接着是队列1中的下一个人员,依此类推.它是传入队列之间的备用选择.
对于给定的输入
计算一个人到达即将进入任何队列的票务柜台的最短时间.此外,在最坏的情况下输出他应该在最短时间内到达计数器的路径(在每个交叉点,警察开始从队列中选择人,而不是我们计算最小时间的人).
如何解决这种时变问题呢?
例如:
7
6
1 5 9
2 5 5
3 6 1
4 6 3
5 7 7
6 7 4
Run Code Online (Sandbox Code Playgroud)
原始问题:
如果单词中的每两个字母,如果第一个出现x次数而第二个出现y次数,则单词为K-good ,则|x - y| ? K.
给出一些单词w,他需要移除多少个字母才能使它成为K-good?
问题链接.
我已经解决了上述问题,我没有要求解决上述问题
我只是第一次误读了这个陈述,只是想到我们怎么能在线性时间线上解决这个问题,这只会引起一个新的问题
修改问题
如果单词中的每两个连续字母,如果第一个出现x次数而第二个出现y次数,则单词为K-good|x - y| ? K.
给出一些单词w,他需要移除多少个字母才能使它成为K-good?
这个问题是否可以在线性时间内解决,我考虑过但却找不到任何有效的解决方案.
解决方案
我的方法:我不能接近我的迷恋,但她是我解决这个问题的方法,尝试一切(来自电影Zooptopia)
即
for i range(0,1<<n): // n length of string
for j in range(0,n):
if(i&(1<<j) is not zero): delete the character
Now check if String is K good
Run Code Online (Sandbox Code Playgroud)
适用N于范围 10^5.时间复杂性:该维度中不存在时间.
有没有任何线性解决方案,像stackoverflow的人一样简单和甜蜜.
For Ex:
String S = AABCBBCB and K=1
If we delete …Run Code Online (Sandbox Code Playgroud) 考虑一下我们{0,2,4,6,8}只有数字.现在我们必须找到一系列的N个数字.
Series : 0,2,4,6,8,20,22,24,26,28,40.....
int start=0;
while(found!=n){
if(start is not odd)found++;
start+=2;
}
Run Code Online (Sandbox Code Playgroud)
我们怎么能有效地做到这一点?
For Ex N=6 Ans=20
Run Code Online (Sandbox Code Playgroud)