1003 Mine

简单sg的博弈题,我们走入了nim博弈的误区,后来发现改了三四个字符就过了。。。。我只能说我是sbsbsbsbsbsb。。。判奇偶啊。。。

#pragma comment(linker,"/STACK:102400000,102400000")//用的是dfs搜索,写得挫,不加上这个且用C++交就跪了。。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<set>
#include<vector>
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i<b;++i)
#define N 9973
using namespace std;
inline void RD(int &ret)
{
char c;
do
{
c=getchar();
}
while(c<'0'||c>'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
int n,m,k;
int sum[1005][1005];
int used[1005][1005];
int s[1000005];
int shu,shuk,ans;
int dx[9]={-1,-1,-1,0,0,1,1,1};
int dy[9]={-1,0,1,-1,1,-1,0,1};
void dfs(int x,int y)//用的就是施教主写的
{//这里的目的就是求空白部分周围的数字块数量
int i;
used[x][y]=1;
for(i=0;i<8;i++)
{
if(x+dx[i]>=0&&x+dx[i]<n&&y+dy[i]>=0&&y+dy[i]<m)
{
if(used[x+dx[i]][y+dy[i]]==0&&sum[x+dx[i]][y+dy[i]]==0)
{
dfs(x+dx[i],y+dy[i]);
}
}
}
for(i=0; i<8; i++)
{
if(x+dx[i]>=0&&x+dx[i]<n&&y+dy[i]>=0&&y+dy[i]<m)
{
if(used[x+dx[i]][y+dy[i]]==0&&sum[x+dx[i]][y+dy[i]]>0)
{
used[x+dx[i]][y+dy[i]]=1;
shuk++;
}
}
}
}
int main()
{
int t,cas,i,j,a,b;
while(scanf("%d",&t)!=EOF)
{
cas=0;
while(t--)
{
cas++;
RD(n);
RD(m);
RD(k);
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
sum[i][j]=0;
used[i][j]=0;
}
}
for(i=0; i<k; i++)
{
RD(a);
RD(b);
for(j=0; j<8; j++)
{
if(a+dx[j]>=0&&a+dx[j]<n&&b+dy[j]>=0&&b+dy[j]<m)
{
sum[a+dx[j]][b+dy[j]]++;
}
}
used[a][b]=1;
}
shu=0;
for(i=0; i<n; i++)
{
for(j=0; j<m;j++)
{
if(used[i][j]==0)
{
if(sum[i][j]==0)//判奇偶,如果为奇数算作两块,偶数为一块
{
shuk=0;
dfs(i,j);
s[shu]=shuk%2+1;//就这里改了一下就AC了,哭啊
shu++;
}
}
}
}
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
if(used[i][j]==0)//其它单独数字块各为1块
{
s[shu]=1;
shu++;
}
}
}
ans=0;
for(i=0;i<shu;i++)
{
ans^=s[i];//异或一下就行了
}
printf("Case #%d: ",cas);
if(ans!=0)
{
printf("Xiemao\n");
}
else
{
printf("Fanglaoshi\n");
}
}
}
return 0;
}

1006 String

一道求最长公共子串的水题。。。

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#define mem(a,b) memset(a,b,sizeof(a))
#define FOR(a,b,i) for(i=a;i<=b;++i)
#define For(a,b,i) for(i=a;i<b;++i)
using namespace std;
inline void RD(int &ret)
{
char c;
do
{
c=getchar();
}
while(c<'0'||c>'9');
ret=c-'0';
while((c=getchar())>='0'&&c<='9')
{
ret=ret*10+(c-'0');
}
}
inline void OT(int a)
{
if(a>=10)
{
OT(a/10);
}
putchar(a%10+'0');
}
char a[1005],b[1005],c[1005];
int dp1[1005][1005],dp2[1005][1005],sum[4005][2],tmp,l1,l2,l3;
void lcs(char *str,int l)//求最长公共子串
{
int i,j,k;
FOR(1,l,i)
{
if(str[i]==c[1])
{
k=1;
for(j=i;j<=l&&k<=l3;j++)
{
if(str[j]==c[k])
{
k++;
}
}
if(k!=l3+1)
{
break;
}
sum[tmp][0]=i;
sum[tmp][1]=j-1;
tmp++;
}
}
}
int main()
{
int t,cas=0,i,j,x,y,ans;
RD(t);
while(t--)
{
cas++;
scanf("%s%s%s",a+1,b+1,c+1);
l1=strlen(a+1);
l2=strlen(b+1);
l3=strlen(c+1);
mem(dp1,0);
mem(dp2,0);
FOR(1,l1,i)//dp过程
{
FOR(1,l2,j)
{
if(a[i]==b[j])
{
dp1[i][j]=dp1[i-1][j-1]+1;
}
else
{
dp1[i][j]=max(dp1[i-1][j],dp1[i][j-1]);
}
}
}
for(i=l1; i>=1; i--)
{
for(j=l2; j>=1; j--)
{
if(a[i]==b[j])
{
dp2[i][j]=dp2[i+1][j+1]+1;
}
else
{
dp2[i][j]=max(dp2[i+1][j],dp2[i][j+1]);
}
}
}
tmp=0;
lcs(a,l1);
x=tmp;
lcs(b,l2);
y=tmp-x;
ans=0;
For(0,x,i)
{
For(0,y,j)
{
ans=max(ans,dp1[sum[i][0]-1][sum[j+x][0]-1]+dp2[sum[i][1]+1][sum[j+x][1]+1]);
}
}
printf("Case #%d: %d\n",cas,ans+l3);
}
return 0;
}

1004 我们队也做出来了,但我暂时还没有研究,据说是个treeDP,但貌似是枚举树的直径。。不懂啦,等待AC

[置顶] 2013 Multi-University Training Contest 8的更多相关文章

  1. Integer Partition(hdu4658)2013 Multi-University Training Contest 6 整数拆分二

    Integer Partition Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...

  2. Partition(hdu4651)2013 Multi-University Training Contest 5

    Partition Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  3. ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków

    ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...

  4. Partition(hdu4651)2013 Multi-University Training Contest 5----(整数拆分一)

    Partition Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  5. JSU 2013 Summer Individual Ranking Contest - 5

    JSU 2013 Summer Individual Ranking Contest - 5 密码:本套题选题权归JSU所有,需要密码请联系(http://blog.csdn.net/yew1eb). ...

  6. 2016 Multi-University Training Contest 2

    8/13 2016 Multi-University Training Contest 2官方题解 数学 A Acperience(CYD)题意: 给定一个向量,求他减去一个  α(>=0)乘以 ...

  7. HDU4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)

    Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  8. Delphi窗体置顶及失去焦点后取得焦点

    unit u_FrmTopMostActive; interface uses Winapi.Windows; implementation // 窗体置顶 procedure SetXwForegr ...

  9. HDU 2018 Multi-University Training Contest 3 Problem A. Ascending Rating 【单调队列优化】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6319 Problem A. Ascending Rating Time Limit: 10000/500 ...

随机推荐

  1. UVa 340 Master-Mind Hints

    蛋疼的题目描述,看了好长好长时间才看懂,题目本身是很简单的. Designer给出一串长度为N的Code,Breaker用Guess来破译. 对于两串数字,如果有同一列相等的数字,那么叫做strong ...

  2. [转] POJ图论入门

    最短路问题此类问题类型不多,变形较少 POJ 2449 Remmarguts' Date(中等)http://acm.pku.edu.cn/JudgeOnline/problem?id=2449题意: ...

  3. UVa725 - Division

    #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; int ...

  4. bash 的漏洞,你们中招了吗?

    http://threatpost.com/major-bash-vulnerability-affects-linux-unix-mac-os-x 检测: $ env x='(){:;}; echo ...

  5. 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误

    嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报  分类: 嵌入式(928)  一般察看函数运行时堆栈的 ...

  6. linux下动态库编译的依赖问题

    这里主要是想试验一下,对一个具有多层嵌套的动态库进行编译时,是否要把最底层的库也包含进来的问题,结论是:只要直接依赖的库名称,不需要最底层库名称. 一,目录结构ZZZ├── add│   ├── ad ...

  7. WCF服务通过防火墙怎么设置

    设置防火墙 1.首先点击控制面板->系统与安全->Window防火墙->点击允许程序通过Windows防火墙 2.查找Windows Communication Foundation ...

  8. hdu 5254 水题

    纯暴力就能过的,可是题目描述真心不清楚,我看了好久好久才明白题目啥意思. 为了迅速打完,代码比较冗余. /* * Author : ben */ #include <cstdio> #in ...

  9. collect my database for test KCF tracker tools

    Path Button used to set dir where avi file saves, set path set video size and start record write to ...

  10. IA32系统级架构总览(一) 实模式和保护模式

    应用程序的编写大部分的时候是不必关心系统级架构的,最多学习一下平台所给的API即可,也就是我们通常说的黑箱子.但是在学习操作系统的时候,系统级架构是要关心的. 系统级架构很难学习,其中一个很大的原因是 ...