142 条题解
-
7465625179 LV 4 @ 2008-07-27 10:20:25
难道就没有一个不交表的吗??
难道做题就是为了AC吗??? -
32014-02-20 22:23:42@
#include<iostream>
using namespace std;
int main(){
int n;
int i;
int a[27]={0,0,0,0,0,1,1,1,1,3,3,3,6,6,10,10,15,21,21,28,28,35,30,30,27,12};
cin>>n;
cout<<a[n];
return 0;
}
打表求超越! -
12018-02-22 19:35:09@
#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<vector>
#include<set>
#include<map>
#include<string>
using namespace std;
const int inf = 1<<29;
const long long int INF=1e18;
int n,p[50],ans=0;
bool vis[50];
void pd()
{
int t=0,k=1;
for(int j=1;j<=25;j+=5)
k*=p[j];
t+=k;
k=1;
for(int j=2;j<=25;j+=5)
k*=p[j];
t+=k;
k=1;
for(int j=3;j<=25;j+=5)
k*=p[j];
t+=k;
k=1;
for(int j=4;j<=25;j+=5)
k*=p[j];
t+=k;
k=1;
for(int j=5;j<=25;j+=5)
k*=p[j];
t+=k;
k=1;
for(int j=1;j<=25;j+=6)
k*=p[j];
t+=k;
k=1;
for(int j=21;j>=1;j-=4)
k*=p[j];
t+=k;
k=1;
for(int j=1;j<=5;j++)
k*=p[j];
t+=k;
k=1;
for(int j=6;j<=10;j++)
k*=p[j];
t+=k;
k=1;
for(int j=11;j<=15;j++)
k*=p[j];
t+=k;
k=1;
for(int j=16;j<=20;j++)
k*=p[j];
t+=k;
k=1;
for(int j=21;j<=25;j++)
k*=p[j];
t+=k;
if(!vis[t])
{
ans+=t;
vis[t]=true;
}
}
void dfs(int step,int x)
{
if(step==n)
{
pd();
return ;
}
for(int i=x;i<=25;i++)
{
if(p[i]==0)
{
p[i]=1;
dfs(step+1,i);
p[i]=0;
}
}}
int main()
{
scanf("%d",&n);
memset(vis,false,sizeof(vis));
memset(p,0,sizeof(p));
dfs(0,1);
cout<<ans<<endl;
} -
02016-09-02 20:36:32@
#include <cstdio>
int n,A[5][5]={0},vis[15]={0};
void Q(){
int K=0,flag;for(int i=0;i<5;i++){
flag=1;
for(int j=0;j<5;j++)
flag*=A[i][j]==1;
if(flag) K++;
}for(int i=0;i<5;i++){
flag=1;
for(int j=0;j<5;j++)
flag*=A[j][i]==1;
if(flag) K++;
}flag=1;
for(int i=0;i<5;i++)
flag*=A[i][i]==1;
if(flag) K++;flag=1;
for(int i=0;i<5;i++)
flag*=A[i][5-i-1]==1;
if(flag) K++;vis[K]=1;
}void dfs(int step,int x){
if(step==n){
Q();
return;
}
int pi,pj;
for(int i=x+1;i<=24;i++){
pi=i/5;
pj=i-5*pi;
if(A[pi][pj]==0){
A[pi][pj]=1;
dfs(step+1,i);
A[pi][pj]=0;
}
}
}int main(){
scanf("%d",&n);
if(n<=4){
printf("0");
return 0;
}
dfs(0,-1);
int sum=0;
for(int i=1;i<=12;i++)
sum+=i*vis[i];
printf("%d",sum);
return 0;
} -
02015-09-03 13:57:03@
#include <iostream>
using namespace std;
int n,ans;
bool map[6][6],v[20];
void add()
{
int t=0;
for(int i=1;i<=5;i++)
{
if(map[i][1]==1 && map[i][2]==1 && map[i][3]==1 && map[i][4]==1 && map[i][5]==1)
t++;
if(map[1][i]==1 && map[2][i]==1 && map[3][i]==1 && map[4][i]==1 && map[5][i]==1)
t++;
}
if(map[1][1]==1 && map[2][2]==1 && map[3][3]==1 && map[4][4]==1 && map[5][5]==1)
t++;
if(map[5][1]==1 && map[4][2]==1 && map[3][3]==1 && map[2][4]==1 && map[1][5]==1)
t++;
if(v[t]==0)
{
ans+=t;
v[t]=true;
}
}
void down(int k,int l)
{
int x=(k-1)/5+1,y=(k-1)%5+1;
if(l==n)
{
add();
return ;
}
for (int i=k+1;i<=25;i++)
{
int x1=(i-1)/5+1,y1=(i-1)%5+1;
map[x1][y1]=1;
down(i,l+1);
map[x1][y1]=0;
}
}
int main()
{
cin >> n;
for (int i=1;i<=25;i++)
{
int x=(i-1)/5+1,y=(i-1)%5+1;
map[x][y]=1;
down(i,1);
map[x][y]=0;
}
cout << ans << endl;
return 0;
}
不打表,真汉子 -
02012-10-31 21:08:10@
测试数据 01:答案正确... (0ms, 580KB)
├ 测试数据 02:答案正确... (0ms, 580KB)
├ 测试数据 03:答案正确... (0ms, 580KB)
├ 测试数据 04:运行超时... (?, 508KB)
├ 测试数据 05:答案正确... (0ms, 580KB)
├ 测试数据 06:答案正确... (0ms, 580KB)
├ 测试数据 07:答案正确... (0ms, 580KB)
├ 测试数据 08:答案正确... (0ms, 580KB)
├ 测试数据 09:答案正确... (0ms, 580KB)
├ 测试数据 10:答案正确... (0ms, 580KB)打表的问题……
-
02012-10-21 10:34:34@
编译通过...
├ 测试数据 01:答案正确... (0ms, 580KB)
├ 测试数据 02:答案正确... (0ms, 580KB)
├ 测试数据 03:答案正确... (0ms, 580KB)
├ 测试数据 04:答案正确... (0ms, 580KB)
├ 测试数据 05:答案正确... (0ms, 580KB)
├ 测试数据 06:答案正确... (0ms, 580KB)
├ 测试数据 07:答案正确... (0ms, 580KB)
├ 测试数据 08:答案正确... (0ms, 580KB)
├ 测试数据 09:答案正确... (0ms, 580KB)
├ 测试数据 10:答案正确... (0ms, 580KB)---|---|---|---|---|---|---|---|-
Accepted / 100 / 0ms / 580KB
打表秒过有木有!
下面打表的别蒙人,那个数组应该是[0..25]的,敢问[1..26]是从哪里出来的? -
02012-10-07 21:09:18@
const
dx:array[1..26]of integer=(0,0,0,0,0,1,1,1,1,3,3,3,6,6,10,10,15,21,21,28,28,35,30,30,27,12); //求解这个当n=5时候为什么是0?当n=5不应该是1吗?
var
n:integer;
begin
readln(n);
writeln(dx[n]);
end. -
02012-08-14 23:10:00@
AC25题纪念!!
打表万岁 -
02012-08-04 15:13:25@
没想到我的第40AC。。是打表这样猥琐的过了
-
02012-08-02 15:30:31@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms点击查看代码
人工穷举,耗时短,秒杀,再慢的机器也吃得消 -
02010-07-14 12:47:56@
编译通过...
├ 测试数据 01:答案正确... 399ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 150ms
├ 测试数据 04:答案正确... 25ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 446ms
├ 测试数据 07:答案正确... 290ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:1310ms -
02010-07-04 17:01:32@
这个出题的不知道是真的傻还是忽悠人啊?
-
02010-03-18 21:45:27@
var n,s:integer;
a:array[1..25]of boolean;
x:array[1..50]of boolean;function ok:integer;
begin
ok:=0;
if a[1]and a[2]and a[3]and a[4]and a[5]then inc(ok);
if a[6]and a[7]and a[8]and a[9]and a[10]then inc(ok);
if a[11]and a[12]and a[13]and a[14]and a[15]then inc(ok);
if a[16]and a[17]and a[18]and a[19]and a[20]then inc(ok);
if a[21]and a[22]and a[23]and a[24]and a[25]then inc(ok);
if a[1]and a[6]and a[11]and a[16]and a[21]then inc(ok);
if a[2]and a[7]and a[12]and a[17]and a[22]then inc(ok);
if a[3]and a[8]and a[13]and a[18]and a[23]then inc(ok);
if a[4]and a[9]and a[14]and a[19]and a[24]then inc(ok);
if a[5]and a[10]and a[15]and a[20]and a[25]then inc(ok);
if a[1]and a[7]and a[13]and a[19]and a[25]then inc(ok);
if a[5]and a[9]and a[13]and a[17]and a[21]then inc(ok);
end;procedure try(i,r:integer);
var k:integer;
begin
if 26-i4 then try(1,n);
writeln(s);
end. -
02010-03-09 13:07:39@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
把棋盘拉成一线搜索+对称性剪枝,最终秒杀……这次剪枝应该都是对的吧
program five;
var
a:array[1..25]of boolean;
s:set of 0..12;
i,n:integer;
t:longint;
function count:integer;
begin
count:=0;
if a[1] and a[2] and a[3] and a[4] and a[5] then inc(count);
if a[6] and a[7] and a[8] and a[9] and a[10] then inc(count);
if a[11] and a[12] and a[13] and a[14] and a[15] then inc(count);
if a[16] and a[17] and a[18] and a[19] and a[20] then inc(count);
if a[21] and a[22] and a[23] and a[24] and a[25] then inc(count);
if a[1] and a[6] and a[11] and a[16] and a[21] then inc(count);
if a[2] and a[7] and a[12] and a[17] and a[22] then inc(count);
if a[3] and a[8] and a[13] and a[18] and a[23] then inc(count);
if a[4] and a[9] and a[14] and a[19] and a[24] then inc(count);
if a[5] and a[10] and a[15] and a[20] and a[25] then inc(count);
if a[1] and a[7] and a[13] and a[19] and a[25] then inc(count);
if a[5] and a[9] and a[13] and a[17] and a[21] then inc(count);
end;
procedure dfs(i,r:integer);
begin
{inc(t);}
if i+r>26 then exit;
if r=0 then begin s:=s+[count];exit;end;
if i=26 then exit;
a[i]:=true;
{cut}
if a[5] and (not a[1]) then begin a[i]:=false;exit;end;
if a[25] and (not a[1]) then begin a[i]:=false;exit;end;
if a[21] and (not a[1]) then begin a[i]:=false;exit;end;
if a[6] and (not a[2]) then begin a[i]:=false;exit;end;
if a[11] and (not a[3]) then begin a[i]:=false;exit;end;
if a[14] and (not a[4]) then begin a[i]:=false;exit;end;
if a[21] and (not a[5]) then begin a[i]:=false;exit;end;
{been cut}
dfs(i+1,r-1);
a[i]:=false;dfs(i+1,r);
end;
begin
readln(n);
fillchar(a,sizeof(a),0);
s:=[];
dfs(1,n);
n:=0;
for i:=1 to 12 do
if i in s then n:=n+i;
writeln(n);
end. -
02009-11-04 11:16:28@
互打;
program vj1146;
const
dx:array[1..26]of integer=(0,0,0,0,0,1,1,1,1,3,3,3,6,6,10,10,15,21,21,28,28,35,30,30,27,12);
var
n:integer;
begin
readln(n);
writeln(dx[n]);
end. -
02009-11-02 01:26:27@
打表降rp么?
俺怎么不认为捏?
来啥题用啥办法嘛! -
02009-10-23 16:12:16@
第一次看错题目
手工计算出所有答案
居然拿了50分。。 -
02009-10-19 23:59:48@
交表:int data[33]={0,0,0,0,0,1,1,1,1,3,3,3,6,6,10,10,15,21,21,28,28,35,30,30,27,12};
-
02009-10-14 20:10:01@
编译通过...
├ 测试数据 01:答案正确... 416ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 212ms
├ 测试数据 04:答案正确... 72ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 556ms
├ 测试数据 07:答案正确... 369ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:1625ms非打表过了。 虽然时间长了点,但还是庆祝下吧!~~~