hdu_2048 錯排問題

?錯排問題本質上就是一個動態規劃問題,其狀態轉移方程為:

記d[n]為n個人錯排情況的總數。

那么策略可以描述為:分析第n個人錯排的可能情況:

1)前n-1個人滿足錯排的情況,那么第n個人加入后還要錯排意味著第n個人與前n-1個人里的任意一個交換字條(共有n-1種交換法)

2)若前n-1個人并不滿足錯排,但加入第n個人后滿足錯排。這必然意味著第n個人加入后與前n-1中的某個人交換字條后才滿足n個人錯排。而又因為原本前n-1人不滿足錯排,那么前n-1個人中至少有一個人手上的字條是匹配的,那么第n個人就只能與匹配者交換字條。此時可以證明前n-1人中字條匹配者人數不能大于1,可以反證(如果有兩人字條匹配,那么在第n個人交換后必然還有一個人字條匹配,不滿足)

tip:

printf()輸出百分號的時候,有的oj上必須寫成%%,有的可以寫成%。嚴格點的話,還是采用第一種寫法穩妥。

ac代碼如下:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring> 
using namespace std;
//錯排思想 
long long d[30];
long long f(int n){if(d[n]!=-1){return d[n];}else{d[n]=(n-1)*(f(n-1)+f(n-2));return d[n];}
}
int main(void){memset(d,-1,sizeof(d));d[1]=0;d[2]=1;f(20);int c;scanf("%d",&c);while(c--){int n;scanf("%d",&n);long long cnt1=d[n];long long cnt2=1;for(int i=1;i<=n;i++){cnt2*=i ;}double ans=double(cnt1)/double(cnt2);printf("%.2lf%%\n",ans*100);//printf("%.2lf%\n",ans*100); //這樣寫就是wronganser 
        }return 0;
}

?

轉載于:https://www.cnblogs.com/KYSpring/p/8908324.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389804.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389804.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389804.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

海量數據尋找最頻繁的數據_在數據中尋找什么

海量數據尋找最頻繁的數據Some activities are instinctive. A baby doesn’t need to be taught how to suckle. Most people can use an escalator, operate an elevator, and open a door instinctively. The same isn’t true of playing a guitar, driving a car, or anal…

OSChina 周四亂彈 —— 要成立復仇者聯盟了,來報名

2019獨角獸企業重金招聘Python工程師標準>>> Osc亂彈歌單&#xff08;2018&#xff09;請戳&#xff08;這里&#xff09; 【今日歌曲】 Devoes &#xff1a;分享吳若希的單曲《越難越愛 (Love Is Not Easy / TVB劇集《使徒行者》片尾曲)》: 《越難越愛 (Love Is No…

2023. 連接后等于目標字符串的字符串對

2023. 連接后等于目標字符串的字符串對 給你一個 數字 字符串數組 nums 和一個 數字 字符串 target &#xff0c;請你返回 nums[i] nums[j] &#xff08;兩個字符串連接&#xff09;結果等于 target 的下標 (i, j) &#xff08;需滿足 i ! j&#xff09;的數目。 示例 1&…

webapi 找到了與請求匹配的多個操作(ajax報500,4的錯誤)

1、ajax報500,4的錯誤&#xff0c;然而多次驗證自己的后臺方法沒錯。然后跟蹤到如下圖的錯誤信息&#xff01; 2、因為兩個函數都是無參的&#xff0c;返回值也一樣。如下圖 3&#xff0c;我給第一個函數加了一個參數后&#xff0c;就不報錯了&#xff0c;所以我想&#xff0c;…

可視化 nlp_使用nlp可視化尤利西斯

可視化 nlpMy data science experience has, thus far, been focused on natural language processing (NLP), and the following post is neither the first nor last which will include the novel Ulysses, by James Joyce, as its primary target for NLP and literary elu…

區分'方法'和'函數'

區分方法: 1在類中的叫方法,在類外面的叫函數 2在名字前加 對象名. 的叫方法, 在名字前加 類名. 或 只寫名字的 叫函數 通過代碼進行區分: 1 from types import MethodType,FunctionType 2 def check(arg): 3 if isinstance(arg,MethodType)#判斷第一個參數是否是第二個參數…

520. 檢測大寫字母

520. 檢測大寫字母 我們定義&#xff0c;在以下情況時&#xff0c;單詞的大寫用法是正確的&#xff1a; 全部字母都是大寫&#xff0c;比如 “USA” 。單詞中所有字母都不是大寫&#xff0c;比如 “leetcode” 。如果單詞不只含有一個字母&#xff0c;只有首字母大寫&#xf…

Java 打包 FatJar 方法小結

在函數計算(Aliyun FC)中發布一個 Java 函數&#xff0c;往往需要將函數打包成一個 all-in-one 的 zip 包或者 jar 包。Java 中這種打包 all-in-one 的技術常稱之為 Fatjar 技術。本文小結一下 Java 里打包 FatJar 的若干種方法。 什么是 FatJar FatJar 又稱作 uber-Jar&#x…

常見問題及解決方案(前端篇)

一、jquery validate 默認校驗規則序號 規則 描述1 requiredtrue 必須輸入的字段。2 remote "check.php" 使用 ajax 方法調用 check.php 驗證輸入值。3 emailtrue 必須輸入正確格式的電子郵件。4 urltrue 必須輸入正確格式的網址。5 datetrue 必須輸入正確格式的日期…

本地搜索文件太慢怎么辦?用Everything搜索秒出結果(附安裝包)

每次用電腦本地的搜索都慢的一批&#xff0c;后來發現了一個搜索利器 基本上搜索任何文件都不用等待。 并且頁面非常簡潔&#xff0c;也沒有任何廣告&#xff0c;用起來非常舒服。 軟件官網如下&#xff1a; voidtools 官網提供三個版本&#xff0c;用起來差別不大。 網盤鏈…

2024. 考試的最大困擾度

2024. 考試的最大困擾度 一位老師正在出一場由 n 道判斷題構成的考試&#xff0c;每道題的答案為 true &#xff08;用 ‘T’ 表示&#xff09;或者 false &#xff08;用 ‘F’ 表示&#xff09;。老師想增加學生對自己做出答案的不確定性&#xff0c;方法是 最大化 有 連續相…

小程序入口傳參:關于帶參數的小程序掃碼進入的方法

1.使用場景 1.醫院場景&#xff1a;比如每個醫生一個id&#xff0c;通過帶參數二維碼&#xff0c;掃碼二維碼就直接進入小程序醫生頁面 2.餐廳場景&#xff1a;比如每個菜一個二維碼&#xff0c;通過掃碼這個菜的二維碼&#xff0c;進入小程序后&#xff0c;可以直接點這道菜&a…

python的power bi轉換基礎

I’ve been having a great time playing around with Power BI, one of the most incredible things in the tool is the array of possibilities you have to transform your data.我在玩Power BI方面玩得很開心&#xff0c;該工具中最令人難以置信的事情之一就是您必須轉換數…

感想3-對于業務邏輯復用、模板復用的一些思考(未完)

內容概覽&#xff1a; 業務邏輯復用的目的基于現有場景&#xff0c;如何抽象出初步可復用邏輯復用業務邏輯會不會產生過度設計的問題業務邏輯復用的目的 我對于業務邏輯復用的理解是忽略實際業務內容&#xff0c;從交互流程、交互邏輯的角度去歸納、總結&#xff0c;提出通用的…

Git的一些總結

.git 目錄結構 |── HEAD|── branches // 分支|── config // 配置|── description // 項目的描述|── hooks // 鉤子| |── pre-commit.sample| |── pre-push.sample| └── ...|── info| └── exclude // 類似.gitignore 用于排除文件|── objects // 存儲了…

2025. 分割數組的最多方案數

2025. 分割數組的最多方案數 給你一個下標從 0 開始且長度為 n 的整數數組 nums 。分割 數組 nums 的方案數定義為符合以下兩個條件的 pivot 數目&#xff1a; 1 < pivot < nnums[0] nums[1] … nums[pivot - 1] nums[pivot] nums[pivot 1] … nums[n -1] 同時…

您是六個主要數據角色中的哪一個

When you were growing up, did you ever play the name game? The modern data organization has something similar, and it’s called the “Bad Data Blame Game.” Unlike the name game, however, the Bad Data Blame Game is played when data downtime strikes and no…

命令查看linux主機配置

查看cpu&#xff1a; # 總核數 物理CPU個數 X 每顆物理CPU的核數 # 總邏輯CPU數 物理CPU個數 X 每顆物理CPU的核數 X 超線程數# 查看物理CPU個數 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每個物理CPU中core的個數(即核數) cat /proc/cpui…

C#中全局處理異常方式

using System; using System.Configuration; using System.Text; using System.Windows.Forms; using ZB.QueueSys.Common;namespace ZB.QueueSys {static class Program{/// <summary>/// 應用程序的主入口點。/// </summary>[STAThread]static void Main(){Appli…

5911. 模擬行走機器人 II

5911. 模擬行走機器人 II 給你一個在 XY 平面上的 width x height 的網格圖&#xff0c;左下角 的格子為 (0, 0) &#xff0c;右上角 的格子為 (width - 1, height - 1) 。網格圖中相鄰格子為四個基本方向之一&#xff08;“North”&#xff0c;“East”&#xff0c;“South”…