139 我排第几个

2024-06-05 06:32
文章标签 第几个 我排 139

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


我排第几个

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 3
描述

现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的?

输入
第一行有一个整数n(0<n<=10000);
随后有n行,每行是一个排列;
输出
输出一个整数m,占一行,m表示排列是第几位;
样例输入
3
abcdefghijkl
hgebkflacdji
gfkedhjblcia
样例输出
1
302715242
260726926

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;int num(char *s,int n)
{int num=0,i;for(i=0;i<n;i++)if(s[i]<s[n])num++;return num;
}int main()
{int n,i,j,sum,x;int a[12];char s[13];scanf("%d",&n);while(n--){sum=1;j=12;x=2*3*4*5*6*7*8*9*10*11*12;scanf("%s",s);memset(a,0,12);for(i=0;i<12;i++){x/=j;j--;sum+=(s[i]-'a'-num(s,i))*x;}printf("%d\n",sum);}
}


这篇关于139 我排第几个的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

139.单词拆分

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 排序问题:有顺序,先遍历背包容量,再遍历数组 组合相反 class Solution {public boolean wordBreak(String s, List<String>

NYOJ-题目(Math)--139-------------------------我排第几个

package org.acm.math;// 思路:康托展开,先准备1-12的阶乘/** 康托展开的例子:* 如我想知道321是{1,2,3}中第几个小的数可以这样考虑 :* 第一位是3,当第一位的数小于3时,那排列数小于321 如 123、 213 ,小于3的数有1、2 。* 所以有2*2!个。再看小于第二位2的:小于2的数只有一个就是1 ,* 所以有1*1!=1 所以小于321的{1,2,

代码随想录训练营 Day38打卡 动态规划 part06 322. 零钱兑换 279. 完全平方数 139. 单词拆分

代码随想录训练营 Day38打卡 动态规划 part06 一、力扣322. 零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例: 输入:coins = [1, 2, 5], amount = 1

【代码随想录训练营第42期 Day38打卡 - 动态规划Part6 - LeetCode 322. 零钱兑换 279.完全平方数 139.单词拆分

目录 一、做题心得 二、题目与题解 题目一:322. 零钱兑换 题目链接 题解:动态规划--完全背包  题目二: 279.完全平方数 题目链接 题解:动态规划--完全背包 题目三:139.单词拆分 题目链接 题解:动态规划--完全背包 三、小结 一、做题心得 今天来到了代码随想录动态规划章节的Part6,依旧是完全背包问题的应用。相对于前边直接套用模板,今天

[创业之路-139] :软件license原理与软件的知识产权保护

目录 前言: 一、什么是软件的 license 1.1 概述 1、定义与性质 2、主要内容 3、类型与分类 4、作用与意义 5、注意事项 1.2 商业软件 License进一步了解 1.3 为什么使用License授权? 1.4 License分类 二、如何实现License授权? 2.1 高性能Licensed的特征 2.2 对称加密与非对称加密:确保数据被正确的接受

力扣刷题-如何把时间超限代码改回正道?-用动态规划题力扣139 单词拆分来分享-c++实现

题目链接:单词拆分链接 最开始的代码,把三个小样例都过了 详细注释版代码如下: class Solution {public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> mySet;mySet.insert(s); // 初始化集合,将原始字符串 s 插入集合中,用于后续处理

代码随想录算法训练营Day44|322.零钱兑换、279.完全平方数、139.单词拆分

零钱兑换 322. 零钱兑换 - 力扣(LeetCode) 本题是完全背包问题 dp数组表示组成amount金额所需的最少硬币个数。 考虑dp数组的推导公式,由于是计算最少硬币的个数,所以需要考虑dp[i-coins[j]+1和dp[i]的较小值。所以dp[i] = min(dp[i-coins[j]]+1,dp[i]),其中i为遍历过程中的amout值,coins[j]为硬币的面值。

代码随想录算法训练营第44天(py)| 动态规划 | 322. 零钱兑换、279.完全平方数、139.单词拆分

322. 零钱兑换 力扣链接 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 思路 每种硬币数量无限,是多重背包问题。 确定dp含义 凑到总金额为i的最少硬币个数为dp[i]确定递推公式 凑足总额为j -

【代码随想录】【算法训练营】【第44天】 [322]零钱兑换 [279]完全平方数 [139]单词拆分

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 44,周四,坚持不住了~ 题目详情 [322] 零钱兑换 题目描述 322 零钱兑换 解题思路 前提: 思路: 重点: 代码实现 C语言 [279] 完全平方数 题目描述 279 完全平方数 解题思路 前提: 思路: 重点: 代码实现 C语言 [139] 单词拆分

基于139邮箱的新邮件到达免费短信提醒的研究与应用

作者: 马巨峰 传上来的图被压缩了,看不清楚了,将就一下吧。   一、先来看一下各种邮箱提供的新邮件到达短信提醒的业务 1、网易邮箱 明显是要收费的 2、QQ邮箱 先得注册一个手机号邮箱,而且发邮件必须得发到手机号邮箱,其实这跟139邮箱没什么区别了。 3、139邮箱 移动自己的,新邮件到达短信提醒免费用,但是用139邮箱的人不多。 二、具体步骤 原理就是利用其他邮箱的自动转发功能