有一种手工画制作,有金属边,用国画颜料制作技艺涂满,还是外贸画,是不是骗人?听说这已经是好些年了?

第一行为绘制这幅画需要的颜色种数n (1 & n & 50)
第二行为n个数xi(1 & xi & 1,000,000,000),表示需要的各种颜料.
输出最少需要在商店购买的颜料颜色种数,注意可能购买的颜色不一定会使用在画中,只是为了产生新的颜色。
输出例子:3
#include&iostream&
#include&algorithm&
using namespace
const int bitnum=8*sizeof(int);
const int N=50;
int bitarray[N][bitnum];
void getbit()
for(int i=0;i&n;i++)
int temp=a[i];
int flag=1;
for(int j=0;j&j++)
if(temp&flag)
bitarray[i][bitnum-j-1]=1;
bitarray[i][bitnum-j-1]=0;
flag=flag&&1;
int getvalue()
int result=0,col=0,row=0;
//高斯消元过程
for(;col&col++,result++)
for(row=row&n;row++)//result之前的行是已经消元过的行,满足bitarray[result][col]=1,这个循环是找到col列中第一个不为1的行
if(bitarray[row][col])
if(row==n)//表明没有找到,因为循环有一个result++,所以这有个result--
swap(bitarray[row],bitarray[result]);//交换找到的行和result行
for(int i=row+1;i&n;i++)//从row+1行开始查找,找不为1的行
if(bitarray[i][col])//相当于第i行元素减去第result行
for(int j=j&j++)
bitarray[i][j]^=bitarray[result][j];
int main()
while(scanf("%d",&n)&0)
for(int i=0;i&n;i++)
scanf("%d",&a[i]);
int ans=getvalue();
cout&&ans&&
阅读(...) 评论()(半泽于念)
(国乐小课)
第三方登录:

我要回帖

更多关于 贵金属首饰手工制作工 的文章

 

随机推荐