热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

bzoj1923[Sdoi2010]外星千足虫压位+高斯消元

这个题手动压位非常麻烦,因为对于同一块,后加的数比先加的数小,所以判断最后一位的时候需要定位到最后一块最小的数,而且在找元的时候还不能找到这个位置注意块的总数每个是30个不要存错,

这个题手动压位非常麻烦,因为对于同一块,后加的数比先加的数小,所以判断最后一位的时候需要定位到最后一块最小的数,而且在找元的时候还不能找到这个位置

注意块的总数每个是30个不要存错,


码:

#include 
#include
#include
using namespace std;
int n,m,i,j,k,l,cnt,ans[2005],a[2005][2005],p,er[55];
char ch;
bool y[4005];
int gauss()
{
    int o=0;
    for(i=1;i<=m;i++)
   {
   	for(j=1;j<=cnt;j++)
   	{
   		bool ky=0;
   		for(p=0;p<=30;p++)
   	if((a[i][j]&er[p])){if(j==cnt&&p==0)continue;ky=1;break; }
if(ky)break;
    }
   	if(j==cnt+1)
       {
       	o++;
       	continue;
       }
   	for(k=1;k<=m;k++)
       {
       if(k==i||(a[k][j]&er[p])==0)continue;
       for(l=1;l<=cnt;l++)
       {
       	a[k][l]^=a[i][l];       	
       }	   	
       } 
       if(i-o==n)	break;
   }
    for(k=1;k<=i;k++)
    {
    for(j=1;j<=cnt;j++)
    for(l=30;l>=0;l--)
    if(a[k][j]&er[l]){ if(j==cnt&&l==0)continue;   ans[(j-1)*31+(30-l)]=(a[k][cnt]&1);y[(j-1)*31+(30-l)]=1;break;   	}	
    }
    return i;
}
int main()
{
    er[0]=1;
    for(i=1;i<=30;i++)
    er[i]=er[i-1]*2;
    scanf("%d%d",&n,&m);
    for(i=1;i<=m;i++)
    {
    cnt=0;
    for(j=1;j<=n+1;j++)
    {   if((j-1)%30==0)++cnt;
    scanf("%c",&ch);
    while(ch!='0'&&ch!='1')scanf("%c",&ch);
    a[i][cnt]=a[i][cnt]*2+(ch-'0');
    }
} 
    int lin=gauss();
    if(lin 
 


推荐阅读
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 本问题探讨了在特定条件下排列儿童队伍的方法数量。题目要求计算满足条件的队伍排列总数,并使用递推算法和大数处理技术来解决这一问题。 ... [详细]
  • 树链问题的优化解法:深度优先搜索与质因数分解
    本文介绍了一种通过深度优先搜索(DFS)和质因数分解来解决最长树链问题的方法。我们通过枚举树链上的最大公约数(GCD),将所有节点按其质因子分类,并计算每个类别的最长链,最终求得全局最长链。 ... [详细]
  • 问题描述:通过添加最少数量的括号,使得给定的括号序列变为合法,并输出最终的合法序列。数据范围:字符串长度不超过100。涉及算法:区间动态规划(Interval DP)。 ... [详细]
  • 本题要求实现一个函数,用于检查给定的字符串是否为回文。回文是指正向和反向读取都相同的字符串。例如,“XYZYX”和“xyzzyx”都是回文。 ... [详细]
  • 本文介绍如何利用栈数据结构在C++中判断字符串中的括号是否匹配。通过顺序栈和链栈两种方式实现,并详细解释了算法的核心思想和具体实现步骤。 ... [详细]
  • 本文详细介绍了8051系列微控制器的中断系统,特别是C51编译器中interrupt和using关键字的作用及其使用方法。通过深入分析这两个关键字的功能,帮助开发者更好地理解和优化中断程序的设计。 ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 本文介绍如何在 C++ 中使用链表结构存储和管理数据。通过具体示例,展示了静态链表的基本操作,包括节点的创建、链接及遍历。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 本文介绍了如何使用暴力方法解决HDU5444问题。代码通过逐个检查输入数据,确保在所有情况下都能找到正确的解决方案。 ... [详细]
author-avatar
lmaster
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有