当前位置:网站首页>1259. Programmation dynamique de poignée de main disjointe
1259. Programmation dynamique de poignée de main disjointe
2022-07-23 18:41:00 【Madame Yu】
1259. Poignée de main disjointe
Nombre pair L'homme se tient dans un cercle,Nombre total de personnes
num_people.Tout le monde serre la main de quelqu'un d'autre que lui,Donc au total, il y auranum_people / 2Poignée de main secondaire.Connectez les gens qui se serrent la main,Veuillez retourner le nombre de schémas de poignée de main où les connexions ne se croisent pas.
Comme les résultats peuvent être importants,Veuillez retourner à la réponse Module
10^9+7Après les résultats.Exemple 1:
Entrée:num_people = 2 Produits:1Exemple 2:
Entrée:num_people = 4 Produits:2 Explication:Il y a deux options au total,La première option est [(1,2),(3,4)] ,La deuxième option est [(2,3),(4,1)] .Exemple 3:
Entrée:num_people = 6 Produits:5Exemple 4:
Entrée:num_people = 8 Produits:14Conseils:
2 <= num_people <= 1000num_people % 2 == 0
Résultats des questions
Succès, Cette question est probablement particulièrement simple dans les questions difficiles
Méthodes:Planification dynamique
- Supposons qu'il y ait x Particuliers, On a choisi l'un d'eux a,C'est a Serrer la main d'un homme , Pour assurer une solution ultérieure , Les deux parties séparées doivent être égales
- a Après la poignée de main ,Il en reste.,x-2 Personne ne serre la main ,x Après la poignée de main , Diviser le reste du personnel en deux parties par une ligne de poignée de main , Supposons qu'une partie soit y Particuliers, Le reste est x-2-y Particuliers
- C'est y Problème de poignée de main , Juste pour x Sous - question de la poignée de main ,Enumeration Tout ce qui est possible y Et x-2-y Possibilité de poignée de main , Les deux n'interfèrent pas , Traitement multiplicatif
Optimisation
- Parce que c'est un nombre pair , Tout ce qui compte, c'est le nombre de paires de mains , L'espace peut être réduit à n/2
- Un côté est divisé en y Les gens, Un côté est divisé en x-2-y Les gens, Même résultat que l'inverse , Alors, pour les deux nombres différents ,Peut être multiplié par2, Cela réduit de moitié le nombre de cycles ,En particulier,,Quand y=x-2-yHeure,Il n'y a qu'une seule possibilité.,
class Solution {
public int numberOfWays(int numPeople) {
int half = numPeople/2;
long[] dp = new long[half+1];
long MOD = (long) (1e9+7);
dp[0]=1;
for(int i = 1; i <= half; i++){
for(int j = 0; j < i-j-1; j++){
dp[i]+=dp[j]*dp[i-j-1]*2;
dp[i] = dp[i]%MOD;
}
if(i%2!=0){
dp[i]+=dp[i/2]*dp[i-i/2-1];
dp[i] = dp[i]%MOD;
}
}
return (int) dp[half];
}
}Complexité temporelle:O(n)
Complexité spatiale:O(n)
边栏推荐
- [toggle 30 days of ML] Diabetes genetic risk detection challenge (2)
- Great God "magic change" airpods, equipped with usb-c interface, 3D printing shell makes maintenance easier
- [whole process of game modeling model production] ZBrush weapon model production: Crossbow
- [attack and defense world web] difficulty Samsung 9-point introductory question (end): Fakebook, favorite_ number
- 【攻防世界WEB】难度四星12分进阶题:Cat
- Behind the recovery of the B-END Market: who stands in front of the stage?
- 如何成为建模师?工业建模和游戏建模哪一个更加吃香?
- Redis【2022最新面试题】
- kubectl 创建 Pod 背后到底发生了什么?
- What problems do you usually encounter when learning 3D modeling? It's too much
猜你喜欢

Prevent and control the summer market blowout after adjustment, and evaluate the summer activities of Tujia, muniao and meituan

As a senior 3D modeler, I give some suggestions to novice learning partners to use

Behind the recovery of the B-END Market: who stands in front of the stage?

【攻防世界WEB】难度三星9分入门题(终):fakebook、favorite_number

rhcsa笔记三

DDD: how to use domain driven design to avoid writing journal code

Great God "magic change" airpods, equipped with usb-c interface, 3D printing shell makes maintenance easier

Flink Exactly-Once 投递实现浅析

Spark installation and startup

Rhcsa notes 5
随机推荐
使用kail破解wifi密码
String length function strlen().. String function header file string.h "suggestions collection"
我的创作纪念日
Great God "magic change" airpods, equipped with usb-c interface, 3D printing shell makes maintenance easier
OSI模型第一层:物理层,基石般的存在!
如何成为建模师?工业建模和游戏建模哪一个更加吃香?
Behind the recovery of the B-END Market: who stands in front of the stage?
入门学习3D建模一般会遇到哪些问题?实在是太多了
多线程【全面学习 图文精讲】
[sharing 3D modeling and production skills] how ZBrush turns pictures into relief models
如何评估券商分析师预测股票涨跌的准确性?
PCL: ajustement multiligne (RANSAC)
Where should we start to learn modeling from zero foundation? How to learn game modeling well?
【2020】【论文笔记】基于二维光子晶体的光控分光比可调Y——
华为胖瘦AP切换方法
SQLZOO——BBC QUIZ
[toggle 30 days of ML] Diabetes genetic risk detection challenge (2)
大神“魔改”AirPods,配备USB-C接口,3D打印外壳让维修更容易
Rhcsa notes 3
The little schemer - the origin of the y-zygote cycle

