当前位置:网站首页>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
边栏推荐
- From the perspective of quantitative genetics, why do you get the bride price when you get married
- Krypton Factor-紫书第七章暴力求解
- February 13, 2022 -5- maximum depth of binary tree
- leecode-学习笔记
- Go语言实现原理——锁实现原理
- openresty ngx_ Lua regular expression
- Calculating the number of daffodils in C language
- (4)UART應用設計及仿真驗證2 —— TX模塊設計(無狀態機)
- Use of metadata in golang grpc
- YML configuration, binding and injection, verification, unit of bean
猜你喜欢
透彻理解JVM类加载子系统
Three.js-01 入门
Paddy serving v0.9.0 heavy release multi machine multi card distributed reasoning framework
Data type, variable declaration, global variable and i/o mapping of PLC programming basis (CoDeSys)
Realize reverse proxy client IP transparent transmission
Sum of two numbers, sum of three numbers (sort + double pointer)
两数之和、三数之和(排序+双指针)
Detailed explanation of pointer and array written test of C language
Spectrum analysis of ADC sampling sequence based on stm32
February 13, 2022-4-symmetric binary tree
随机推荐
The method and principle of viewing the last modification time of the web page
openresty ngx_lua请求响应
Hj16 shopping list
openresty ngx_ Lua regular expression
Multi sensor fusion of imu/ electronic compass / wheel encoder (Kalman filter)
Practice of concurrent search
Global and Chinese market of networked refrigerators 2022-2028: Research Report on technology, participants, trends, market size and share
[speech processing] speech signal denoising and denoising based on MATLAB low-pass filter [including Matlab source code 1709]
What is the process of building a website
数学公式截图识别神器Mathpix无限使用教程
Composition of interface
判断二叉树是否为完全二叉树
February 13, 2022 -5- maximum depth of binary tree
Leecode learning notes
Use the rewrite rule to rewrite all accesses to the a domain name to the B domain name
Multi camera stereo calibration
Metasploit (MSF) uses MS17_ 010 (eternal blue) encoding:: undefined conversionerror problem
Debian 10 installation configuration
[speech processing] speech signal denoising and denoising based on Matlab GUI low-pass filter [including Matlab source code 1708]
6-axis and 9-axis IMU attitude estimation