hdu4671Backup Plan

http://acm.hdu.edu.cn/showproblem.php?pid=4671

这个高端的题意啊 看了N久啊

n>m时  直接第一列按顺序来 第二列为M+1

else  第一列顺序来 第二列 按第一组为N  第二组为N-1  依次分配

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define N 110
int f[][],a[][],x[];
int main()
{
int i,j,k,n,m;
while(cin>>n>>m)
{
memset(f,,sizeof(f));
if(n>m)
{
for(i = ; i <= m ; i++)
{
a[i][] = i;
f[i][i] = ;
}
for(i = ; i <= m ; i++)
{
a[i][] = m+;
f[i][m+] = ;
}
for(i = ; i <= m ; i++)
{
printf("%d %d",a[i][],a[i][]);
for(j = ; j <= n ; j++)
{
if(!f[i][j])
printf(" %d",j);
}
puts("");
}
}
else
{
int j = ;
for(i = ; i <= m ; i++)
{
f[i][j] = ;
a[i][] = j++;
if(j>n)
j = ;
}
for(i = ; i <= n ; i++)
x[i] = n;
j = ;
for(i = ; i <= m ; i++)
{
int o = a[i][];
if(o == x[j])
x[j]--;
if(x[j]<) x[j] = n;
f[i][x[j]] = ;
a[i][] = x[j]--;
if(x[j]<)
x[j] = n;
j++;
if(j>n) j = ;
}
for(i = ; i <= m ; i++)
{
printf("%d %d",a[i][],a[i][]);
for(j = ; j <= n ; j++)
{
if(!f[i][j])
printf(" %d",j);
}
puts("");
}
}
}
return ;
}
上一篇:关于localstorage的几个测试


下一篇:java RC4加密和解码