问题 K: WaWa的难题

2023-10-13 15:40
文章标签 问题 难题 wawa

本文主要是介绍问题 K: WaWa的难题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题 K: WaWa的难题

时间限制: 1 Sec  内存限制: 128 MB
提交: 570  解决: 125
[提交] [状态] [命题人:jsu_admin]
题目描述
HaHa和WaWa是好朋友,他们在临近期末的这段时间一起宅在图书馆学习。
今天HaHa在书上看到一个排列组合题目,思考很久后,仍然找不出其中的规律。
于是他把题目叙述给了WaWa。
题目:
————————————————————————
一个长度为N的排列,由数字1~N组成,它满足两个条件。
1、数字1永远在第一位。
2、任意两个相邻数字之差小于等于2。
现在给出一个N,
你能知道能组成多少个符合条件的排列吗?。
例如:
N=4
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
所以答案为4
————————————————————————
WaWa听后也是一脸懵逼。
现在WaWa想求助于你们,WaWa给出一个正整数N,问你用1~N能组成多少个符合题意的排列。
输入
多组数据。
每组数据输入一个正整数N(1<=N<=100)。
输出
输出符合题意的排列个数
样例输入 Copy
2
4
样例输出 Copy
1
4

 

dfs 打表前 10 项即可发现规律

 

a[i]=a[i-1]+a[i-3]+1

 

 

 1 #include<stdio.h>
 2 int num = 0;
 3 int sum = 0;
 4 void dfs(int n,int a){
 5     if(sum == n)
 6     {
 7         num ++;
 8         return ;    
 9     }
10     dfs(n,a++);
11 
12 }
13 int main()
14 {
15     int n;
16     long long a[1000];
17     a[1]=1;
18     a[2]=1;
19     a[3]=2;
20     a[4]=4;
21     for(int i=5;i<=100;i++)
22         a[i]=a[i-1]+a[i-3]+1;
23     while(scanf("%d",&n)!=EOF)    
24     {
25     //    num = 0;
26     //    dfs(n,1);
27         printf("%lld\n",a[n]);
28     }
29 }
View Code

打表

 1 #include <bits/stdc++.h>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<cstdlib>
 5 #include<cstring>
 6 #include<cstdio>
 7 #include<string>
 8 #include<vector>
 9 #include<bitset>
10 #include<queue>
11 #include<deque>
12 #include<stack>
13 #include<cmath>
14 #include<list>
15 #include<map>
16 #include<set>
17 //#define DEBUG
18 #define RI register int
19 using namespace std;
20 typedef long long ll;
21 //typedef __int128 lll;
22 const int N=1000;
23 const int MOD=1e9+7;
24 const double PI = acos(-1.0);
25 const double EXP = 1E-8;
26 const int INF = 0x3f3f3f3f;
27 int t,n,m,k,q;
28 int ans=0;
29 int vis[110];
30 void dfs(int x,int c){
31     if(c>=n){
32         ans++;
33         return;
34     }
35     int l=max(1,x-2);
36     int r=min(n,x+2);
37     for(int i=l;i<=r;i++){
38         if(!vis[i]){
39             vis[i]=1;
40             dfs(i,c+1);
41             vis[i]=0;
42         }
43     }
44 }
45 int main()
46 {
47 #ifdef DEBUG
48     freopen("input.in", "r", stdin);
49     //freopen("output.out", "w", stdout);
50 #endif
51     ll a[N];
52     a[1]=1;
53     a[2]=1;
54     a[3]=2;
55     a[4]=4;
56     for(int i=5;i<=100;i++)
57         a[i]=a[i-1]+a[i-3]+1;
58     while(~scanf("%d",&n)){
59         //ans=0;
60         //memset(vis,0,sizeof(vis));
61         //vis[1]=1;
62         //dfs(1,1);
63         cout << a[n] << endl;
64     }
65     //cout << "Hello world!" << endl;
66     return 0;
67 }
View Code

 

转载于:https://www.cnblogs.com/DWVictor/p/10202517.html

这篇关于问题 K: WaWa的难题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/204239

相关文章

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

IDEA Maven提示:未解析的依赖项的问题及解决

《IDEAMaven提示:未解析的依赖项的问题及解决》:本文主要介绍IDEAMaven提示:未解析的依赖项的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录IDEA Maven提示:未解析的依编程赖项例如总结IDEA Maven提示:未解析的依赖项例如

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例