144 条题解
-
-1三次元❤堕天逗比 LV 10 @ 2016-03-22 07:16:17
测试数据 #0: Accepted, time = 0 ms, mem = 552 KiB, score = 10
测试数据 #1: Accepted, time = 0 ms, mem = 552 KiB, score = 10
测试数据 #2: Accepted, time = 0 ms, mem = 552 KiB, score = 10
测试数据 #3: Accepted, time = 0 ms, mem = 552 KiB, score = 10
测试数据 #4: Accepted, time = 0 ms, mem = 552 KiB, score = 10
测试数据 #5: Accepted, time = 0 ms, mem = 552 KiB, score = 10
测试数据 #6: Accepted, time = 0 ms, mem = 548 KiB, score = 10
测试数据 #7: Accepted, time = 0 ms, mem = 548 KiB, score = 10
Accepted, time = 0 ms, mem = 552 KiB, score = 80
-
-12015-07-29 11:26:23@
评测结果
编译成功foo.cpp: In function 'int main()':
foo.cpp:10:24: warning: unknown conversion type character 'l' in format [-Wformat=]
scanf("%lld%lld",&n,&k);
^
foo.cpp:10:24: warning: unknown conversion type character 'l' in format [-Wformat=]
foo.cpp:10:24: warning: too many arguments for format [-Wformat-extra-args]
foo.cpp:30:23: warning: unknown conversion type character 'l' in format [-Wformat=]
printf("%lld ",now);
^
foo.cpp:30:23: warning: too many arguments for format [-Wformat-extra-args]
foo.cpp:42:17: warning: unknown conversion type character 'l' in format [-Wformat=]
printf("%lld",i);
^
foo.cpp:42:17: warning: too many arguments for format [-Wformat-extra-args]
测试数据 #0: Accepted, time = 0 ms, mem = 280 KiB, score = 10
测试数据 #1: Accepted, time = 0 ms, mem = 280 KiB, score = 10
测试数据 #2: Accepted, time = 0 ms, mem = 276 KiB, score = 10
测试数据 #3: Accepted, time = 15 ms, mem = 280 KiB, score = 10
测试数据 #4: Accepted, time = 0 ms, mem = 280 KiB, score = 10
测试数据 #5: Accepted, time = 15 ms, mem = 280 KiB, score = 10
测试数据 #6: Accepted, time = 0 ms, mem = 280 KiB, score = 10
测试数据 #7: Accepted, time = 15 ms, mem = 276 KiB, score = 10
Accepted, time = 45 ms, mem = 280 KiB, score = 80
代码
#include <iostream>
#include <stdio.h>
using namespace std;
int num[30];
unsigned long long a[25]={0,0,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,20922789888000,355687428096000,6402373705728000,121645100408832000,2432902008176640000};int main()
{
long long n,k;
scanf("%lld%lld",&n,&k);
k--;
for(long long i=n;i>1;i--)
{
long long j=k/a[i];
k%=a[i];
long long now=1;
long long total=0;
for(;;)
{
if(num[now]==1)
{
now++;
continue;
}
else
if(total==j)
{
num[now]=1;
printf("%lld ",now);
break;
}
else
total++;
now++;
}
}
for(long long i=1;i<=n;i++)
if(!num[i])
{
printf("%lld",i);
return 0;
}
} -
-12015-02-01 14:58:32@
/*************************************************************************
> File Name: d.c
> Author: Netcan
> Mail: 1469709759@qq.com
> Created Time: 2015/2/1 11:44:00
************************************************************************/#include<stdio.h>
#include<string.h>const long long fac[21]={1,1,2,6,24,120,720,5040,40320,362880,
3628800,39916800,479001600,6227020800,
87178291200,1307674368000,20922789888000,
355687428096000,6402373705728000,121645100408832000,
2432902008176640000};
bool flag[21];
int f(int *data, int n, int m) {
int t;
memset(flag, 0, sizeof(flag));
--m;
for(int i = 0; i < n; ++i) {
t = m / fac[n - i - 1];
int j;
for(j = 1; j <= n; ++j)
if(!flag[j]) {
if(0 == t) break;
else --t;
}
data[i] = j, flag[j] = true;
m %= fac[n - i -1];
}
}int main()
{
int n,m;
int data[21];
while(scanf("%d%d",&n,&m)==2) {
f(data, n, m);
int flag = true;
for(int i = 0; i<n; ++i)
if(flag) {
printf("%d", data[i]);
flag=false;
}
else
printf(" %d", data[i]);
puts("");
}return 0;
} -
-12009-09-20 14:13:19@
在C语言里用int和long 都存不下20!
无奈之下,用了double
一次AC!!!!!
贴下程序(有更改,不能直接提交,请管理员不必删)
#include
double jiech[21]={1};
long number,locate,last[20]={};
main()
{
long i,j=0;
for(i=1;i