}
}
if(sign)
{
k=1;
num=0;
for(j=n-1;j>=0;j--)
{
if(a[j]==0)
{
num+=k*(j+1);
k*=10;
}
}
if(num
#include
#include
int mt[9][2],n;
int max[9]={9};
int xl[9]={9};
bool ifc();
int main()
{
int i,j,m,fi,k,flag;
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d %d",&mt[i][0],&mt[i][1]);
m=pow(2,n);
for(i=0;i
>=1;
if(xl[j]) xl[0]++;//真话数量
}
if(xl[0]>max[0]) continue;
if(ifc())//成立
{
//
//
for(k=1;k<=n;k++) printf("%d",xl[k]);
printf(" :%d\n",xl[0]);
if(max[0]==xl[0])
{
for(flag=k=1;k<=n;k++)
{
if(max[k]>xl[k])
{
flag=0;
break;
}
else if(max[k]}
}
bool ifc()
{
int i;
for(i=1;i<=n;i++)
{
if(xl[i])//若此人说真话
{
if(mt[i][0]!=xl[0]-1) return false;
}
else
{
}
if(mt[i][0]==xl[0]) return false;
}
return true;
}
算法训练 数的统计
时间限制:1.0s 内存限制:256.0MB
查看参考代码
问题描述
在一个有限的正整数序列中,有些数会多次重复出现在这个序列中。
如序列:3,1,2,1,5,1,2。其中 1 就出现 3 次,2 出现 2 次,3 出现 1 次,5 出现 1 次。
你的任务是对于给定的正整数序列,从小到大依次输出序列中出现的数及出现的次数。
输入格式
第一行正整数 n,表示给定序列中正整数的个数。
第二行是 n 个用空格隔开的正整数 x,代表给定的序列。
输出格式
若干行,每行两个用一个空格隔开的数,第一个是数列中出现的数,第二个是该数在序列中出现
的次数。
样例输入
12
8 2 8 2 2 11 1 1 8 1 13 13
样例输出
1 3
2 3
8 3
11 1
13 2
数据规模和约定
数据:n<=1000;0
int main()
{
int i,m,n,a[1000],count=0,totalcount=0;
scanf("%d",&n);
for(i=0;i
#include
#include
using namespace std;
int main()
{
int a[1000],i,j=0,b[1000]={0},n,sum=1,x=0;
scanf("%d",&n);
for(i=0;i}
for(i=0;i
int s[200][200];
int ispure(int x1,int y1,int w) //w 为宽度
{
int i,j,pure=s[x1][y1];
for(i=0;i
c) m=r;
else m=c;
for(i=0;i
#include
#include
using namespace std;
int r,c;
int area(int a[200][200],int i,int j,int n)
{