问题 D: vfk 式名字重排

本文介绍了一种名为vfk式的火星人名字重排算法,探讨如何计算给定长度和字符集下,特定名字的全部可能重排组合数量,并提供了一段C++代码实现,用于快速求解该问题。通过数学组合原理和高效算法设计,文章展示了如何在大规模数据集上进行快速计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vfk 式名字重排
形式化描述:给定一个长度为N的整数序列A1…N,求有多少种不同长度为的N的整数序列B1…N是A的重排,即可重集{Ai}={Bi}。两个序列不同当且仅当它们任一位置上的元素不相等。

输入
第1行:两个正整数N,k,其中N代表该火星人名字的长度,k代表火星文有多少种字符,我们不妨设在有k种字符的情况下的火星文中的字符分别是0到k−1。
第2行:用空格隔开的N个正整数,代表这个火星人的名字,我们保证这N个数字一定在0到k−1的范围内。

输出
第1行:一个正整数——这个火星人的名字重排方案数对109+7取模的结果(火星人的逻辑特别奇怪,只要知道模数是多少就可以放过你了)。

样例输入
复制样例数据
4 2
0 0 1 1
样例输出
6

提示
满足条件的重排共有如下6种:
0,0,1,1
0,1,0,1
1,0,0,1
0,1,1,0
1,0,1,0
1,1,0,0

在这里插入图片描述

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<cmath>
#include<ctime>
#include<algorithm>
#include<utility>
#include<stack>
#include<queue>
#include<vector>
#include<set>
#include<map>
#define EPS 1e-9
#define PI acos(-1.0)
#define inf 0x3f3f3f3f
#define ll long long
#define ull unsigned long long
#include <iomanip>
const int M = 1E9+7;
const int maxn = 2e6+5;
const int base = 131;
using namespace std;
const int N=2e6+10;
int a[N];
const int MOD=1e9+7;
ll inv(ll a,ll b){
    ll ans=1;
    while(b){
        if(b&1)ans=(ans*a)%MOD;
        a=(a*a)%MOD;
        b>>=1;
    }
    return ans;
}
ll jie[N];
int main(){
    int n,m;
    jie[1]=1;
    for(int i=2;i<=N;i++){
        jie[i]=(jie[i-1]*i)%MOD;
    }
//    for(int i=2;i<=N;i++){
//        cout<<jie[i]<<endl;
//    }
    scanf("%d%d",&n,&m);
    for(int i=0;i<n;i++){
        int val;
        scanf("%d",&val);
        a[val]++;
    }
    sort(a,a+m,greater<ll>());
    ll ans=jie[n];
    //cout<<ans<<endl;
    for(ll i=0;i<m;i++){
        if(a[i]==0)break;
        ans=(ans*inv(jie[a[i]],MOD-2))%MOD;
    }
    printf("%lld\n",ans);
    return 0;
}

使用GVF域和VFC域进行图片分割 % Vector field convolution (VFC) external force field example. % % See also AMT, EXAMPLE_PIG, AM_VFC, AM_VFK, AC_DISPLAY. % % Reference % [1] Bing Li and Scott T. Acton, "Active contour external force using % vector field convolution for image segmentation," Image Processing, % IEEE Trans. on, vol. 16, pp. 2096-2106, 2007. % [2] Bing Li and Scott T. Acton, "Automatic Active Model % Initialization via Poisson Inverse Gradient," Image Processing, % IEEE Trans. on, vol. 17, pp. 1406-1420, 2008. % % (c) Copyright Bing Li 2005 - 2009. clear all disp('======================================') disp('Vector field convolution (VFC) example') %% parameter settings disp('Initializing parameters ...') SAVE_AVI = 0; % set it to 1 if you want to save the process as .avi movie DISPLAY_STREAMLINE = 0; % set it to 1 if you want to plot streamlines, note that it takes a while mu = .2; GVF_ITER = 100; normalize = 1; alpha = .5; beta = 0; tau = .5; SNAKE_ITER = 5; SNAKE_ITER1 = 60; RES = .5; clr = {'b' 'b' 'r'}; %% Read images disp('Reading images ...') U = imread('im_U.bmp'); noisyU=imread('im_Unoisy.bmp'); figure(1) %% compare 3 different cases for cs = 1:3, %% compute external force fields switch cs, case 1, % traditional GVF with Gaussian filter disp('--------------------------------------------------') disp('Case 1: GVF snake with initial circle close to FOI') disp('Computing the external force field ...') h = fspecial('gaussian',[5 5],5); f = imfilter(double(noisyU),h); titl = 'GVF'; Fext = AM_GVF(f, mu, GVF_ITER, normalize); R = 20; case 2, % traditional GVF with Gaussian filter disp('--------------------------------------------------') disp('Case 2: GVF snake with initial circle far away from FOI') disp('Computing the external force field ...
下载使用前声明: 本源码已完全免费 后台文件加密/前台文件完全开源 如果安装成功的话无法进入请进入数据库查看是否成功写入数据库 如果没有成功写入数据库请把数据库文件导入 要求php5以上版本 php5.3一下版本 使用说明: 自动发卡平台源码可以放入任何站点 安装自动发卡平台 http://您的域名/yc.php 后台地址 http://您的域名/admin 您可以将admin改成其他名称 数据库导入默认账号:yc88 数据库导入默认密码:yc88net 测试账号 易宝测试接口(密钥) PID:10012226645 KEY:w79txMr0ql14p709ADuQ7a9Hk3Dc6G2225021w79ws3G9oPSy20U92QimbLy 财付通测试接口(密钥) PID:1900000109 KEY:8934e7d15453e97507ef794cf7b0519d 如果无法安装怎么办,无法写入数据库,无法Everyone提权 使用的是虚拟空间 首先你把faka.sql导入您的数据库 您可以使用phpmyadmin进行导入 导入以后修改文件 conf/db.php if(!defined('WY_ROOT')) exit; //数据据服务器您服务器IP是多少就设置多少 define('DBSERVER','localhost'); //数据库端口一般默认需要修改 define('DBPORT','3306'); //数据库访问用户 define('DBUSER','root'); //数据库访问用户密码 define('DBPASS','11111111'); // 数据库名称 define('DBNAME','faka'); //数据库表前缀 define('DB_PREFIX','faka_'); //是否开启SQL日志记录,WY_SQL_LOG=true开启,WY_SQL_LOG=false关闭,默认false define('WY_SQL_LOG',false); //cache token define('WY_CACHE_TOKEN','e83a75350834146eb822c9fb9fdab1f4'); ?> 接口修改 如果您将个人版自动发卡平台放到是您网站的跟目录搭建而是放到您网站的二级目录里 那我们需要进行修改 修改pay/目录下所有目录的/send.php文件 找打关于 $notify_url = "[url=http://".$_SERVER[]http://".$_SERVER['HTTP_HOST']."/pay/yc/notify_url.php[/url]"; $callback_url = "[url=http://".$_SERVER[]http://".$_SERVER['HTTP_HOST']."/pay/yc/return_url.php[/url]"; 这段代码 除yc目录里是个以为其他都是一个 把/pay/前面加成您的二级目录名称 例如您的二级目录为faka $notify_url = "[url=http://".$_SERVER[]http://".$_SERVER['HTTP_HOST']."/faka/pay/yc/notify_url.php[/url]"; $callback_url = "[url=http://".$_SERVER[]http://".$_SERVER['HTTP_HOST']."/faka/pay/yc/return_url.php[/url]";
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值