2014_GCJ_A
题目链接:http://code.google.com/codejam/contest/2984486/dashboard#s=p0
最想吐槽的是想些DFS过小数据,居然写不出来,不知道我这半年的ACM生活在干嘛?
先不说直接出最有解,但是DFS这基本的还不会,真是,估计快废了!
DFS过小数据的程序:
#include<iostream>//又臭又长,无语
#include<algorithm>
#include<math.h>
#include<string.h>
#include<string>
#include<set>
#include<map>
#include<cstdio>
int n,l;
int ans;
using namespace std;
string s[],s1[],tem[];
int b[];
int pan()
{
sort(tem+,tem+n+);
for (int i=;i<=n;i++)
if (s1[i]!=tem[i]) return ;
return ;
} void res(int x)
{
for (int i=;i<=n;i++)
tem[i][x]^=;//PS这里注意一下,字符为‘0’,或者‘1’;可以算出字符'0'^1='1','1'^1='0';
}
void rec(int x)
{
for (int i=;i<=n;i++)
tem[i][x]^=;
} void dfs(int t,int k)
{
if (t==l)
{
if (pan()) ans=min(ans,k);return; }
dfs(t+,k);
res(t);
dfs(t+,k+);
rec(t);
} int main()
{
int t;
freopen("A-small-practice.in","r",stdin);
freopen("out.txt","w",stdout);
cin>>t;
for (int o=;o<=t;o++){
ans=;
memset(b,,sizeof(b));
cout<<"Case #"<<o<<": ";
cin>>n>>l;
for (int i=;i<=n;i++) {cin>>s[i];tem[i]=s[i];}
for (int i=;i<=n;i++) cin>>s1[i];
sort(s1+,s1+n+);
dfs(,);
if (ans<)
cout<<ans<<endl;
else cout<<"NOT POSSIBLE"<<endl;
}
return ;
}
正解是:枚举第I个数,因为存在解的话肯定是A中第I个数与B第一个数相同,然后根据两者数字的不同去跟新其他位数上的数!复杂度大概是O(N*N*L);
部分代码: for (int i=1;i<=n;i++){
for (int j=;j<=n;j++) ss[j]=s[j]; int now=;
for (int j=;j<l;j++)
if (ss[][j]!=s1[i][j]){
for (int k=;k<=n;k++)
ss[k][j]^=;
now++;
} sort(ss+,ss+n+); int flag=;
for (int k=;k<=n;k++)
if (ss[k]!=s1[k]){flag=;break;}
if (!flag) ans=min(ans,now);
}
等下再做做位运算
2014_GCJ_A的更多相关文章
随机推荐
- Ubuntu 12.04 添加新用户并启用root登录
启动root sudo passwd 输入密码 输入root 新密码并重复 su 切换root 添加用户比如hduser 修改密码hduserchmod u+w /etc/sudoersvi sudo ...
- 华为C语言编程规范
DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...
- MVC中Model,不仅仅只是数据的传递者
在Model使用的时候很多人回向以前写三层架构一样使用它,将Model作为数据的传递者. 比如常见的写法 public int Id { get; set; } public int RoleId { ...
- [原创]Postgres-XC集群笔记-概念与环境搭建
文所描述的Postgres-XC版本:v1.2.1项目主页地址:http://sourceforge.net/projects/postgres-xc/ pdf文件下载: Postgres-XC集群搭 ...
- django-south
python manage.py schemamigration youappname --initial # --initial在数据库创建models定义的表,以及South需要的south_mi ...
- Easy-UI 动态添加DataGrid的Toolbar按钮
在前人的基础上进行的修改,不知道他是从哪里引用来的,所以没有粘贴引用地址. 原代码不支持1.3.6. 修改功能: 1.如果之前没有添加过工具,用这个方法不能添加(已修复): 2.估计是不支持1.3.6 ...
- SharePoint 2010 中使用Ztree和EasyUI样式冲突问题
<style type="text/css"> /*解决ztree和SharePoint样式冲突问题*/ .ztree li a { display: inline-b ...
- 010--VS2013 C++ 平面地图贴图
先准备好地图的小图片: //全局变量HDC mdc;HBITMAP fullmap;const int rows = 8, cols = 8; //-------------------------- ...
- 修改ip脚本
1.打开运行 2.输入CMD 3.在命令提示符下输入: netsh -c interface ip dump > C:\我的网络配置.txt 4.打开您在C:\ 下的"我的网络配置 . ...
- 如何把bootstrap用webpack打包
今天下载了一个anguarl2写后台,一直没有找到是如何使用bootstrap样式的,然后就全文做了搜索,发现有一段代码 import 'bootstrap-loader'; 这段代码很可疑,所以就查 ...