codeforces 459C Pashmak and Buses(模拟,组合数A)

题目

跑个案例看看结果就知道了:8 2 3

题目给的数据是 n,k,d

相当于高中数学题:k个人中选择d个人排成一列,有多少种不同的方案数,列出其中n中就可以了。

#include<iostream>
#include<algorithm>
#include<string>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
#define ll __int64
int mp[1005][1005];

int main(){
    int n,k,d;
    scanf("%d%d%d",&n,&k,&d);

    int ddd=d,kkk=1;

    int flag=0;
    while(ddd--)
    {
        kkk=kkk*k;
        if(kkk>=n)flag=1;
    }

    if(flag==0)
        printf("-1\n");
    else {

        int kk,num=1,kkk=1;
        for(int i=0;i<d;i++)
        {
            kk=1;
            for(int j=0;j<n;j++)
            {
                mp[i][j]=kk;
                if(num==kkk)kk++,kkk=0;
                kkk++;
                if(kk>k)kk=kk-k;
            }
            num=num*k;
        }

        for(int i=0;i<d;i++)
        {
            int yi=0;
            for(int j=0;j<n;j++)
            {
                if(yi)printf(" ");yi=1;
                printf("%d",mp[i][j]);
            }
            puts("");
        }
    }
    return 0;
}

codeforces 459C Pashmak and Buses(模拟,组合数A)

时间: 2024-11-19 10:55:40

codeforces 459C Pashmak and Buses(模拟,组合数A)的相关文章

codeforces 459C - Pashmak and Buses 【构造题】

题目:codeforces 459C - Pashmak and Buses 题意:给出n个人,然后k辆车,d天时间,然后每天让n个人选择坐一辆车去上学,要去d天不能有任意两个人乘同一辆车,不能的话输出 -1 分类:数学,构造 分析:这个题目首先得分析,我开始想到的是首先用相同的放在一起,比如 7 2 3 这样构造 1 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1 2 2 2 1 1 1 就是需要的天数跟每一行出现次数最多的数的出现次数相等,但是发现还有更优

Codeforces 459C Pashmak and Buses 机智数学题

这个题目说的是有n个人,有k辆巴士,有m天,每天都要安排n个人坐巴士(可以有巴士为空),为了使得这n个人不会成为朋友,只要每两个人在这m天里坐的巴士至少一天不相同即可. 要你求是否有这样的安排方法,如果有,输出具体的安排方案,每个人每天坐那辆车. 挺不错的题目,我压根没想到..真的,虽然知道之后惊呼原来如此简单,但一开始确实想岔了.现在一看这题目,很清晰,每个学生在这m天中坐的车辆,就会形成一个由m个数字组成的序列(数字为1-k代表巴士编号),按照题目要求,只需要学生的那个序列是独一无二的即可.

Codeforces 459C

构造题 最多可以是k的d次方的学生不成为朋友 循环节的长度以k为倍数翻倍 注意long long #include<iostream> #include<cstdio> #include<cstdlib> #include<string.h> #include<math.h> #include<algorithm> #include<vector> #include<queue> using namespace

codeforce Pashmak and Buses(dfs枚举)

1 /* 2 题意:n个同学,k个车, 取旅游d天! 3 要求所有的学生没有两个或者两个以上的在同一辆车上共同带d天! 输出可行的方案! 4 5 对于d行n列的矩阵,第i行第j列表示的是第i天第j个同学所在的车号! 6 也就是保证所有行不全相同,即每一列都是不相同的! 7 如果每一列都不相同就是表示第j个同学(第j列)在这d天中不会和其他同学(列)在这d天中 都在同一辆车中! 8 9 思路:对于每一列我们枚举d天该学生所在的车号!它的下一列只保证有一个元素和它不同就行了!依次下去! 10 11

CodeForces 459D Pashmak and Parmida&#39;s problem

Pashmak and Parmida's problem Time Limit:3000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 459D Description Parmida is a clever girl and she wants to participate in Olympiads this year. Of course she

Codeforces 475C Kamal-ol-molk&#39;s Painting 模拟

题目链接:点击打开链接 题意:给定n*m的矩阵 X代表有色 .代表无色 用一个x*y的矩阵形刷子去涂色. 刷子每次可以→或↓移动任意步. 若能够染出给定的矩阵,则输出最小的刷子的面积 若不能输出-1 思路: 先找到连续最小的x,y 因为至少一个边界和x或y相等,所以枚举(x,i) 和 (i,y)就可以了. #pragma comment(linker, "/STACK:102400000,102400000") #include <stdio.h> #include <

Codeforces 459D Pashmak and Parmida&#39;s problem(树状数组)

题目链接:Codeforces 459D Pashmak and Parmida's problem 题目大意:给定一个序列,定义f(l,r,x)为l≤k≤r并且ak=x的k的个数,求1≤i<j≤n的情况下,f(1,i,ai)<f(j,n,aj)的个数. 解题思路:预处理出f(1,i,ai),f(j,n,aj)值,然后用树状数组维护个数. #include <cstdio> #include <cstring> #include <algorithm> us

Codeforces 459E Pashmak and Graph(dp+贪心)

题目链接:Codeforces 459E Pashmak and Graph 题目大意:给定一张有向图,每条边有它的权值,要求选定一条路线,保证所经过的边权值严格递增,输出最长路径. 解题思路:将边按照权值排序,每次将相同权值的边同时加入,维护每个点作为终止点的最大长度即可. #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 3

codeforces 459D - Pashmak and Parmida&#39;s problem【离散化+处理+逆序对】

题目:codeforces 459D - Pashmak and Parmida's problem 题意:给出n个数ai,然后定义f(l,?r,?x) 为ak = x,且l<=k<=r,的k的个数,求 i,?j (1?≤?i?<?j?≤?n) ,f(1,?i,?ai)?>?f(j,?n,?aj).,有多少对满足条件的i,j. 分类:逆序数,线段树,离散化, 分析:这是一道不错的数据结构题目,比较灵活.推一下第一组样例之后发现时让求一个逆序数的题目,但是不是单纯的求逆序数. 第一组