当前位置:网站首页>UVA – 11637 garbage remembering exam (combination + possibility)
UVA – 11637 garbage remembering exam (combination + possibility)
2022-07-05 23:16:00 【Full stack programmer webmaster】
Hello everyone , I meet you again , I'm the king of the whole stack
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 |
---|
The question : Input n and k, Your task is to calculate the average . Number of invalid words , The calculation method is : The position of two words after another arrangement does not exceed k
Ideas : Let's calculate the effective position first . After enumeration . Choose from the rest 2*k To calculate , use log To calculate
#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;
}
Copyright notice : This article is an original blog article , Blog , Without consent , Shall not be reproduced .
Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/117532.html Link to the original text :https://javaforall.cn
边栏推荐
- [untitled]
- golang代码检查工具
- Metasploit (MSF) uses MS17_ 010 (eternal blue) encoding:: undefined conversionerror problem
- 基于脉冲神经网络的物体检测
- 数学公式截图识别神器Mathpix无限使用教程
- Vision Transformer (ViT)
- ORB_ SLAM2/3
- The PNG image is normal when LabVIEW is opened, and the full black image is obtained when Photoshop is opened
- Element operation and element waiting in Web Automation
- Detailed explanation of pointer and array written test of C language
猜你喜欢
东南亚电商指南,卖家如何布局东南亚市场?
Three. Js-01 getting started
LabVIEW打开PNG 图像正常而 Photoshop打开得到全黑的图像
Douban scoring applet Part-2
Practice of concurrent search
Ultrasonic sensor flash | LEGO eV3 Teaching
Data type, variable declaration, global variable and i/o mapping of PLC programming basis (CoDeSys)
Basic knowledge of database (interview)
Initial experience | purchase and activate typora software
3: Chapter 1: understanding JVM specification 2: JVM specification, introduction;
随机推荐
Registration of Electrical Engineering (elementary) examination in 2022 and the latest analysis of Electrical Engineering (elementary)
判断二叉树是否为完全二叉树
Leetcode daily question 1189 The maximum number of "balloons" simple simulation questions~
Use of shell:for loop
3: Chapter 1: understanding JVM specification 2: JVM specification, introduction;
February 13, 2022-4-symmetric binary tree
实现反向代理客户端IP透传
Three. Js-01 getting started
3:第一章:认识JVM规范2:JVM规范,简介;
【Note17】PECI(Platform Environment Control Interface)
利用LNMP实现wordpress站点搭建
Non rigid / flexible point cloud ICP registration
Summary of binary tree recursive routines
(4) UART application design and simulation verification 2 - TX module design (stateless machine)
数据库基础知识(面试)
Sum of two numbers, sum of three numbers (sort + double pointer)
Alibaba Tianchi SQL training camp task4 learning notes
(4)UART應用設計及仿真驗證2 —— TX模塊設計(無狀態機)
[digital signal denoising] improved wavelet modulus maxima digital signal denoising based on MATLAB [including Matlab source code 1710]
AsyncSocket长连接棒包装问题解决