| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1014 人关注过本帖
标题:蓝桥杯历届真题 矩阵翻牌
取消只看楼主 加入收藏
qwe142
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-6
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
蓝桥杯历届真题 矩阵翻牌
蓝桥杯历届真题   矩阵翻牌   求各位大神看一下有什么问题?

#include<stdio.h>
int main()
{  long long int  m,n,i,j,k,p,q,l,s=0,x,y;
   scanf("%I64d%I64d",&n,&m);
   long long int a[n][m];
   for(i=1;i<=n;i++)
   { for(j=1;j<=m;j++)
     a[i][j]=1;
   }   
   for(x=1;x<=n;x++)
   {
       for(y=1;y<=m;y++)
     {   
          for(i=1;i<=n/x;i++)
            { for(q=1;q<=m;q++)
                if(a[x*i][q]==1)    a[x*i][q]=0;
                else a[x*i][q]=1;
            }
           for(j=1;j<=m/y;j++)  
            {
                for(l=1;l<=n;l++)
                if(a[l][y*j]==1)    a[l][y*j]=0;
                else a[l][y*j]=1;
            }   
      }
   }
   for(i=1;i<=n;i++)
   {  for(j=1;j<=m;j++)
      if(a[i][j]==0)  s++;
   }
    printf("%I64d",s);
   return 0;
}
搜索更多相关主题的帖子: include 
2017-04-06 18:04
qwe142
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-6
收藏
得分:0 
题目
题目:

     小明先把硬币摆成了一个 n 行 m 列的矩阵。


  随后,小明对每一个硬币分别进行一次 Q 操作。

  对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。

  其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。

  当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。

  小明想知道最开始有多少枚硬币是反面朝上的。于是,他向他的好朋友小M寻求帮助。

  聪明的小M告诉小明,只需要对所有硬币再进行一次Q操作,即可恢复到最开始的状态。然而小明很懒,不愿意照做。于是小明希望你给出他更好的方法。帮他计算出答案。
         输入格式
       输入数据包含一行,两个正整数 n m,含义见题目描述。
         输出格式
       输出一个正整数,表示最开始有多少枚硬币是反面朝上的。
         样例输入
    2 3
         样例输出
    1
          数据规模和约定
      对于10%的数据,n、m <= 10^3;
      对于20%的数据,n、m <= 10^7;
      对于40%的数据,n、m <= 10^15;
      对于10%的数据,n、m <= 10^1000(10的1000次方)。
2017-04-07 14:35
qwe142
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-6
收藏
得分:0 
回复 5楼 rjsp
恩恩,好的,谢谢!
2017-04-07 21:00
快速回复:蓝桥杯历届真题 矩阵翻牌
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025030 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved