usaco_3.2.2

原创 2013年12月02日 16:36:41

求满足条件,且排列序为I的串。

有两种方式求,一是求出不满足条件的串,而所有串易求,不满足的也容易求,把不满足条件的串再I序前面的求出来,求出I的正常序。

2是直接统计满足条件按的串。

此题应为2的做法,因为不满足条件的串的求法和满足条件的串求法对称,也比较难求。

用dp[i][j]表示长度为i,1的个数不超过j的满足条件的串的个数。

那么dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];

求出所有个数后,反向构造解。

现在要求为I的串,如果I是> dp[i - 1][j]的话说明第一个是1,否则的话说明第一个是0.

AC代码:

/*
ID: 123
PROG: kimbits
LANG: C++
*/

#include <cstdio>
#include <cstring>


const int MAX_NUMBER = 50;
long long dp[MAX_NUMBER][MAX_NUMBER];
long long n, l, order;
FILE *in, *out;

void printAns(long long cnt_order, int cnt_length, int one_number) {
    if (cnt_length <= 0) {
        return ;
    }
    if (cnt_order > dp[cnt_length - 1][one_number]) {
        fprintf(out, "1");
        printAns(cnt_order - dp[cnt_length - 1][one_number], cnt_length - 1, one_number - 1);
    }
    else {
        fprintf(out, "0");
        printAns(cnt_order, cnt_length - 1, one_number);
    }
}
int main() {
    in = fopen("kimbits.in", "r");
    out = fopen("kimbits.out", "w");
    memset(dp, 0, sizeof(dp));
    fscanf(in, "%lld%lld%lld", &n, &l, &order);
    for (int i = 0; i <= l; i++) {
        dp[0][i] = 1;
    }
    for (int i = 1; i <= n; i++) {
        dp[i][0] = 1;
        for (int j = 1; j <= l; j++) {
            dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
        }
    }
    printAns(order, n, l);
    fprintf(out, "\n");
    return 0;
}


usaco3.2.2 Stringsobits

一 原题 Stringsobits Kim Schrijvers Consider an ordered set S of strings of N (1 This set of str...

【C++】【USACO3.2.2】01串

问题描述】   给出三个整数:N,L,i。需要你找出长度为N,且1的个数小于等于L的二进制数中,第i小的那个二进制数。【输入格式】 共一行,用空格分开的三个整数N,L,i。 【输出格式】 共一...
  • ctf109
  • ctf109
  • 2017年08月02日 10:15
  • 99

USACO/kimbits 3.2.2

#include #include #include int main() { FILE *fin=fopen("kimbits.in","r"); FILE *fout=fope...
  • zwfars
  • zwfars
  • 2013年04月28日 20:46
  • 255

GreenDao3.2.2集成使用以及数据库的升级

GreenDao3.2.2集成使用以及数据库的升级 一概念      是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案。                           ...

Android数据库GreenDAO3.2.2的使用(四、数据库升级)

使用场景:使用GreenDao操作数据库,必然涉及到数据库版本升级:增加表、增加字段。 greendao { schemaVersion 1//数据库版本号 } 数据库版本升级就是提升...

Spring3.2.2_自动装配

Spring_Autowiring collaborators 在Spring3.2.2中自动装配类型,分别为:no(default)(不采用自动装配)、byName,byType,construc...

(开发笔记)转载:spring3.2.2+mybatis3.2.3+c3p0项目整合

转载自:http://www.cnblogs.com/AloneSword/archive/2013/11/13/3422128.html 在搭建项目之前,创建数据库,以及数...

学习ThinkPHP3.2.2:video11,ajaxReturn函数向客户端返回ajax调用后的数据

目的:ajax方式提交许愿数据,服务器处理后返回json格式数据,客户端js作出反应。 D:\wamp\www\wish\Public\Js\index.js 提交按钮点击事件代码: ...
  • bq_cui
  • bq_cui
  • 2015年10月04日 09:11
  • 2250

TP5.0与tp3.2.2模块生成和模板输出区别分析

总结

3.2.2: jQuery的DOM操作之创建节点

先占地
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:usaco_3.2.2
举报原因:
原因补充:

(最多只允许输入30个字)