# 1.（字符识别）

example：
1 1 1
1 0 0
0 1 0

1 0 0
0 1 0
1 1 1

//[Exam1] Character Recognize
/*
case 1:
2 3 2
1 1 1
0 1 0
1 0 0
1 0 0

case 2:
2 2 5
1 1 1 1
1 1 0 0
1 1 1 0
1 0 0 1
0 0 0 1

case 3:
2 2 4
1 1 1 1
1 1 0 0
1 1 1 0
1 0 0 1

*/
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
struct node{
int num;
node* left;
node* right;
bool leaf;
};
node* root;
queue<node*> level;
vector<node*> levelV;
node* born;
void destroyTree(node* cur)
{
if(cur==NULL)
return;
else
{
destroyTree(cur->left);
destroyTree(cur->right);
delete cur;
}
}
void creatTree(node* &cur,int value)
{
if(value==0)
{
if(cur->left==NULL)
{
born=new node();
born->leaf=false;
born->left=NULL;
born->right=NULL;
born->num=-1;
cur->left=born;
cur=born;
}
else
cur=cur->left;
}
else
{
if(cur->right==NULL)
{
born=new node();
born->leaf=false;
born->left=NULL;
born->right=NULL;
born->num=-1;
cur->right=born;
cur=born;
}
else
cur=cur->right;
}
}
bool mergeTest(node* a,node* b)//将A合并到B中，即在a的遍历中，在b的相同路径上不能出现叶子节点
{
if(a->leaf&&b->leaf)
return false;
if(a->left&&b->left)
if(!mergeTest(a->left,b->left))
return false;
if(a->right&&b->right)
if(!mergeTest(a->right,b->right))
return false;
return true;
}
void merge(node* a,node* b)//将a合并到b中
{
if(a->left!=NULL)
{
if(b->left==NULL)
b->left=a->left;
else
merge(a->left,b->left);
}
if(a->right!=NULL)
{
if(b->right==NULL)
b->right=a->right;
else
merge(a->right,b->right);
}
}
bool filter(vector<node*>& tmp)
{
int len=tmp.size();
//cout<<"try delete size: "<<len<<endl;
int i;
for(i=0;i<len;++i)
{
//cout<<"round: "<<i<<endl;
if(tmp[i]->left==NULL)
continue;
else if(tmp[i]->right==NULL)
continue;
else if(!mergeTest(tmp[i]->left,tmp[i]->right))
break;
}
//cout<<i<<" "<<len<<endl;
node* cur;
if(i>=len)
{
for(i=0;i<len;++i)
{
if(tmp[i]->left==NULL)
{
cur=tmp[i]->right;
}
else if(tmp[i]->right==NULL)
{
cur=tmp[i]->left;
}
else
{
merge(tmp[i]->left,tmp[i]->right);
cur=tmp[i]->right;
}
tmp[i]->left=cur->left;
tmp[i]->right=cur->right;
tmp[i]->leaf=cur->leaf;
//cout<<"deleted num: "<<cur->num<<endl;
delete cur;
}
return true;
}
return false;
}
int spare()
{
node* flag=NULL;
while(!level.empty())level.pop();
levelV.clear();
level.push(root);
level.push(flag);
node* cur;
int countCanDel=0;
while(!level.empty())
{
cur=level.front();
level.pop();
if(cur!=NULL)
{
if(cur->leaf)
break;
levelV.push_back(cur);
}
else
{
if(levelV.size()==0)
break;
if(filter(levelV))//删除成功
{
//cout<<"deleteing"<<endl;
++countCanDel;
for(int i=0;i<levelV.size();++i)
{
level.push(levelV[i]);
//  cout<<levelV[i]->num<<" ";
}
//cout<<endl;
level.push(flag);
}
else
{
//cout<<"next "<<endl;
for(int i=0;i<levelV.size();++i)
{
if(levelV[i]->left!=NULL)
level.push(levelV[i]->left);
if(levelV[i]->right!=NULL)
level.push(levelV[i]->right);
}
level.push(flag);
}
levelV.clear();
}
}
return countCanDel;
}
int main()
{
root=new node();
root->leaf=false;
root->left=NULL;
root->right=NULL;
root->num=0;
int n,m,p;
cin>>n>>m>>p;
int i,j,k;
int value;
node* cur;
//int start=1;
for(i=0;i<p;++i)
{
cur=root;
for(j=0;j<n;++j)
for(k=0;k<m;++k)
{
cin>>value;
creatTree(cur,value);
//cout<<"orignal: "<<cur->num<<endl;
//cur->num=start++;
//cout<<"after: "<<cur->num<<endl;
}
cur->leaf=true;
}
int cost=spare();
cout<<"mid: "<<cost<<endl;
cout<<"final: "<<n*m-cost;
return 0;
}

# 2 .输出最大值

/*
3
1 2 3
*/
#include <iostream>
#include <vector>
using namespace std;
unsigned int sum=0;
vector<unsigned int> value;
int main() {
int num;
cin>>num;
value.resize(num+1);
for(int i=0;i<num;++i)
{
cin>>value[i];
sum=sum^value[i];
}
//cout<<sum<<endl;
unsigned int maxSum=sum,tmpSum=sum;
unsigned int midSum;
int start,end;
for(int i=0;i<num;++i)
{
tmpSum=tmpSum^value[i];
//cout<<"no: "<<i<<" "<<tmpSum<<endl;
if(tmpSum>maxSum)
{
//cout<<"ac"<<endl;
maxSum=tmpSum;
}
else if(tmpSum<sum)
{
//cout<<"fail"<<endl;
tmpSum=sum;
}
}
cout<<maxSum<<endl;
return 0;
}

• 本文已收录于以下专栏：

## 2017百度之星初赛B场总结

（A场因为不可抗力因素(?)没能参加，B场还好算是磕磕碰碰地吃着低保过去了，真的菜呀） Chess Problem Description 車是中国象棋中的一种棋子，它能攻击同一行或同一列中没...
• ACquick
• 2017年08月13日 20:59
• 308

## 面试ap公司试题

• catROOM
• 2017年03月08日 17:59
• 381

## 第二十二届华罗庚金杯少年数学邀请赛 决赛（初中二年级组）部分试题解答

• LingLingQI_Leon
• 2017年04月28日 17:05
• 739

## php面试题集-填空题

• zyb_icanplay7
• 2014年04月07日 00:53
• 891

## How Tomcat Works -- 目录

《How Tomcat Works》这本书的读书笔记，及主要内容感想。 作为一个世界范围广泛使用的强大框架，Tomcat必然有非常多的设计思想、设计模式，让我们学习。 不看这种包含设计思想的框架，只...
• puma_dong
• 2015年12月08日 00:38
• 1440

## multi update only works with $operators 执行更新语句报错:multi update only works with$ operators 查看更新语句格式: db.c4.up...
• dingsai88
• 2015年01月28日 10:11
• 4120

## 《how tomcat works》翻译开篇

《how tomcat work》翻译此书只为学习，有错误，不到位之处，请指出。文笔欠佳，请多海涵。简介概述欢迎来到《how tomcat works》，这本书剖析了当下免费的 ，开源的，并且是最为流...
• tomcat_how_work
• 2015年11月01日 23:26
• 694

## 安装apache，输入地址127.0.0.1后显示it works，为什么没显示网页？

• yusiyuuestc
• 2013年12月21日 19:52
• 6176

## HowTomcatWorks学习笔记--一个简单的Web容器

• laiwenqiang
• 2017年05月16日 16:10
• 529

## how tomcat works 总结

• dlf123321
• 2014年11月02日 20:46
• 1522

举报原因： 您举报文章：记works Ap初试题 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)