青蛙跳河
来源:互联网 发布:监控软件行为 编辑:程序博客网 时间:2024/05/17 04:29
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
FILE *f1,*f2;
int flag[100];
int tiao[1000][1000];
int n;
int result = 0;
void Init()
{
for(int i=1;i<=n;i++)
if(i <= n/2)
flag[i] = -1;
else
flag[i] = 1;
flag[n/2+1] = 0;
}
void Print(int tiao[])
{
for(int i=1;i<=n;i++)
if(tiao[i]==-1)
fprintf(f2,"> ");
else if(tiao[i]==0)
fprintf(f2,"_ ");
else
fprintf(f2,"< ");
fprintf(f2,"\n");
}
void copy(int *a,int *b)
{
for(int i=1;i<=n;i++)
b[i] = a[i];
}
void swap(int i,int j)
{
int temp = flag[i];
flag[i] = flag[j];
flag[j] = temp;
}
void Tiao(int index,int len)
{
int sum = 0;
for(int i=1;i<=n/2;i++)
sum+=flag[i];
copy(flag,tiao[len]);
if(sum == n/2 && flag[n/2+1] ==0)
{
result ++;
fprintf(f2,"%d:The flag Task is OK!!!\n",result);
for(int i=0;i<=len;i++)
Print(tiao[i]);
}
else
{
if(index-1 > 0 && flag[index-1] == -1)
{
swap(index,index-1);
Tiao(index-1,len+1);
swap(index,index-1);
}
if(index-2 > 0 && flag[index-2] == -1)
{
swap(index,index-2);
Tiao(index-2,len+1);
swap(index,index-2);
}
if(index+1 <= n && flag[index+1] == 1)
{
swap(index,index+1);
Tiao(index+1,len+1);
swap(index,index+1);
}
if(index+2 <= n && flag[index+2] == 1)
{
swap(index,index+2);
Tiao(index+2,len+1);
swap(index,index+2);
}
}
}
int main()
{
f1 = fopen("1.in","r");
f2 = fopen("1.out","w");
fscanf(f1,"%d",&n);
if(n%2==1)
{
Init();
Tiao(n/2+1,0);
}
else
fprintf(f2,"Please check the correctness of the n ! The n is Odd!");
fclose(f1);
fclose(f2);
return 0;
}
- 青蛙跳河
- 青蛙跳河
- 跳河的兔子
- 青蛙
- 青蛙
- 跳河问题的php求解
- 女孩要男友背着走被拒后赌气跳河
- 跳河的兔子是因为胆小吗
- POJ 3258 River Hopscotch(二分 跳河)
- 七旬老人去世,相伴18年老狗跳河自杀
- 五姐妹因没嫁妆集体自杀 绝望跳河
- HDU1024 这压缩真先进...先进的我想跳河
- 青蛙摆渡
- 青蛙过河
- 青蛙效应
- 青蛙排序
- 青蛙现象
- 青蛙视觉
- c语言位运算 求1个整数的二进制数有多少个1
- 高级项目管理师个人总结--项目计划
- poj 3613 Cow Relays (K步最短路+Floyd+矩阵快速幂)
- poj1042
- C#读写文件总结
- 青蛙跳河
- Server.MapPath的用法
- [转] 一个老板的三句话-成大事必备
- 如何挖矿:Bitcoin教程
- 简单病毒样本分析
- mollac/new与free/delete的区别
- 同时打开多个vc的办法(xp下)
- new 第四界substring (string操作和匹配)
- 提问的智慧