当前位置:网站首页>UVA – 11637 Garbage Remembering Exam (组合+可能性)
UVA – 11637 Garbage Remembering Exam (组合+可能性)
2022-07-05 23:02:00 【全栈程序员站长】
大家好,又见面了,我是全栈君
Little Tim is now a graduate,and is thinking about higher studies. However, he first needs to appear in anexam whose preparation alone includes memorizing the meanings of over 3500words!
After going through the list afew times, however, he sees trouble – he can remember all the word-meanings aslong as they keep coming in the same order. When quizzed in random order,however, he is at a complete loss. So, as any decent programmer would, hewrites a random shuffler to help him quiz himself.
To his dismay, however, hefinds that words that were near each other in the original list quite often endup being close together in the shuffled list as well. He does not like this atall, and suspects that his random shuffler may have some kind of a bug. Butbefore he recodes his shuffler he wants your help to make sure that theshuffler is indeed faulty.
So he is asking for your helpin determining how likely such events are even if the list is indeed gettingcompletely randomly shuffled, and even if his program is working perfectly.
Given the size of the list N,and a proximity factor K, you are to determine the expected number of wastedwords in a shuffled list assuming that all possible shufflings are equallylikely. Informally, two words are considered wasted if they appear at adistance less than or equal to K in both the lists. Assume that theoriginal list is cyclical and shuffled list is linear (non-cyclical).
Formally, let us suppose thattwo words A and B have indices oa and ob inthe original list and indices sa and sb inthe shuffled list, respectively (all indices are 0-based). Then both the wordsare considered wasted if:
and
Input
The input consists of a seriesof cases. Each case consists of two integers N and K on a singleline. You may assume that 1≤K≤N≤100000.Input is terminated by a line containing two 0s, and has at most 125 lines ofinput.
Output
Output oneline for each test case except the last one. Each line of output should be ofthe form “Case X: Y”, where X is the serial number of output and Y is the expected number of wasted words in theshuffled list, printed with exactly four digits after the decimal point, withrounding if necessary.
SampleInput Outputfor Sample Input
5 2 5 1 0 0 | Case 1: 5.0000 Case 2: 3.5000 |
|---|
题意:输入n和k,你的任务是计算平均情况下。无效单词的个数,计算方法是:两个单词在又一次排列后的位置不超过k
思路:我们先计算有效的位置。枚举后。从剩下的选出2*k来计算,用log来计算
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
const int maxn = 100005;
int n, k;
long double f[maxn];
void solve() {
if (n == 1) {
printf("0.0000\n");
return;
}
if (n <= 2 * k + 1) {
printf("%d.0000\n", n);
return;
}
int N = k << 1, p;
long double sum = 0;
for (int i = 1; i <= n; i++) {
p = max(i-1-k, 0) + max(n-k-i, 0);
if (p < N)
continue;
sum += exp(f[p] + f[n - N - 1] - f[n - 1] - f[p - N]);
}
printf("%.4lf\n", (double)(n - sum));
}
int main() {
f[0] = f[1] = 0;
for (int i = 2; i <= maxn; i++)
f[i] = f[i-1] + log((long double) i);
int cas = 1;
while (scanf("%d%d", &n, &k) != EOF && n) {
printf("Case %d: ", cas++);
solve();
}
return 0;
}版权声明:本文博客原创文章,博客,未经同意,不得转载。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117532.html原文链接:https://javaforall.cn
边栏推荐
- Paddy serving v0.9.0 heavy release multi machine multi card distributed reasoning framework
- Media query: importing resources
- MoCo: Momentum Contrast for Unsupervised Visual Representation Learning
- Debian 10 installation configuration
- Calculating the number of daffodils in C language
- Use the rewrite rule to rewrite all accesses to the a domain name to the B domain name
- 2.13 summary
- 6-axis and 9-axis IMU attitude estimation
- Expectation, variance and covariance
- Use of metadata in golang grpc
猜你喜欢

Element operation and element waiting in Web Automation

Three. JS VR house viewing

Initial experience | purchase and activate typora software

Leetcode daily question 1189 The maximum number of "balloons" simple simulation questions~

Overview of Fourier analysis

利用LNMP实现wordpress站点搭建

Use of metadata in golang grpc

How to quickly understand complex businesses and systematically think about problems?

14种神笔记方法,只需选择1招,让你的学习和工作效率提高100倍!

Common model making instructions
随机推荐
[digital signal denoising] improved wavelet modulus maxima digital signal denoising based on MATLAB [including Matlab source code 1710]
二叉树递归套路总结
Registration of Electrical Engineering (elementary) examination in 2022 and the latest analysis of Electrical Engineering (elementary)
数据库基础知识(面试)
Three.js-01 入门
基于脉冲神经网络的物体检测
Finally understand what dynamic planning is
Use of metadata in golang grpc
两数之和、三数之和(排序+双指针)
Use the rewrite rule to rewrite all accesses to the a domain name to the B domain name
Activate function and its gradient
Go language implementation principle -- lock implementation principle
Shell: operator
fibonacci search
一文搞定JVM常见工具和优化策略
Calculating the number of daffodils in C language
Spectrum analysis of ADC sampling sequence based on stm32
What is the process of building a website
Starting from 1.5, build a micro Service Framework -- log tracking traceid
The method and principle of viewing the last modification time of the web page