2009ACM多校联合暑期集训(7)——福州大学专场
来源:互联网 发布:淘宝新店如何经营 编辑:程序博客网 时间:2024/06/05 22:48
http://acm.hdu.edu.cn/showproblem.php?pid=2863
http://acm.hdu.edu.cn/forum/read.php?tid=14108
2863 Top Shooter——ac.
其实这题有用贪心的思想吧,但主要还是理清思路,然后把思路完整的模拟出来,但这提代码中有个想法还是很好的。如下:
while(fall!=m) fly[f++]=k;
{
for(i=0;i<n;i++)
mi[i]=700;
for(;air[k].a==t;k++)
for(i=0;i<n;i++)
{
for(j=0;j<f;j++)
if(air[fly[j]].h>=view[i]&&air[fly[j]].h<mi[i])
mi[i]=air[fly[j]].h;
if(mi[i]!=700)
{
for(j=0;j<f&&air[fly[j]].h!=mi[i];j++);
air[fly[j]].h=-1;
fly[j]=fly[f-1];//这步是将被打掉的fly[j]所记录的数组下标删除掉,这步直接把最后一个储存的下标赋给要删除的那个,这是很好的想法,仅仅标记的话下次还要判断是否已处理过,很费时间。
f--;
fall++;
}
}
2864 “Base B”——ac.
恩 简单题,看懂题意即可。
2866 Special Prime——队友ac.
这题虽主要不是我做的,但也花了很多时间。
2869 Paper Cutting Game——ac.
博弈题,但其本质是招素因子数。
2870 Largest Submatrix——赛后ac.
这题在比赛时我有些,用的是动态规划,但想法太复杂了 ,敲完后觉得会超就先交了下,结果果然超啊,还好先交了一次,后来马上转移阵地了。比赛后要了代码,看了觉得其思想很好啊,用位运算的,贴下代码吧。
关于求相同元素的最大子矩阵。
#include <stdio.h>
#define Max(a,b) ((a)>(b))?(a):(b)
#define N 1002
int a[N][N],b[N];
char c[N][N];
int main()
{
int n,m,i,j,k,ma,answer,ans,count,temp;
while(scanf("%d%d",&n,&m)!=EOF)
{
ans=0;
for(i=0;i<n;i++)
scanf("%s",c[i]);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(c[i][j]=='a'||c[i][j]=='w'||c[i][j]=='y'||c[i][j]=='z')
a[i][j]=1;
else
a[i][j]=0;
}
}
for(answer=i=0;i<n;i++)
{
for(k=0;k<m;k++)
b[k]=1;
for(j=i;j<n;j++)
{
for(k=0;k<m;k++)
b[k]&=a[j][k];
for(k=count=ma=0;k<m;k++)
{
if(b[k])
{
count++;
if(ma<count)
ma=count;
}
else count=0;
}
if(!ma)break;
temp=(j-i+1)*ma;
if(answer<temp)
answer=temp;
}
}
ans=Max(ans,answer);//看到这里即可,下面是本题的题目要求的重复该段而已
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(c[i][j]=='b'||c[i][j]=='w'||c[i][j]=='x'||c[i][j]=='z')
a[i][j]=1;
else
a[i][j]=0;
}
}
for(answer=i=0;i<n;i++)
{
for(k=0;k<m;k++)
b[k]=1;
for(j=i;j<n;j++)
{
for(k=0;k<m;k++)
b[k]&=a[j][k];
for(k=count=ma=0;k<m;k++)
{
if(b[k])
{
count++;
if(ma<count)
ma=count;
}
else count=0;
}
if(!ma)break;
temp=(j-i+1)*ma;
if(answer<temp)
answer=temp;
}
}
ans=Max(ans,answer);
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(c[i][j]=='c'||c[i][j]=='x'||c[i][j]=='y'||c[i][j]=='z')
a[i][j]=1;
else
a[i][j]=0;
}
}
for(answer=i=0;i<n;i++)
{
for(k=0;k<m;k++)
b[k]=1;
for(j=i;j<n;j++)
{
for(k=0;k<m;k++)
b[k]&=a[j][k];
for(k=count=ma=0;k<m;k++)
{
if(b[k])
{
count++;
if(ma<count)
ma=count;
}
else count=0;
}
if(!ma)break;
temp=(j-i+1)*ma;
if(answer<temp)
answer=temp;
}
}
ans=Max(ans,answer);
printf("%d/n",ans);
}
return 0;
}
- 2009ACM多校联合暑期集训(7)——福州大学专场
- 2009ACM多校联合暑期集训(1)——TJU专场
- 2009ACM多校联合暑期集训(2)——TJU专场
- 2009ACM多校联合暑期集训(3)——WHU专场
- 2009ACM多校联合暑期集训(4)——杭电专场
- 2009ACM多校联合暑期集训(8)——北京师大专场
- 2009ACM多校联合暑期集训(9)——哈工大专场
- 2009ACM多校联合暑期集训(10)——NIT专场
- 2009ACM多校联合暑期集训(11)——HRBEU专场
- 2009ACM多校联合暑期集训(12)——FZU专场
- 2009ACM多校联合暑期集训(13)——HIT专场
- 2009ACM多校联合暑期集训(14)——ZJNU专场
- 2009ACM多校联合暑期集训(16)——NIT专场
- 2009ACM多校联合暑期集训(5)——国防科大专场
- 2015郑州大学ACM暑期集训——第三天
- ACM暑期集训——专题一[优先队列]
- ACM暑期集训——专题一[DFS]
- ACM暑期集训——专题一[BFS]
- VC中CString,int,string,char*之间的转换
- 开博
- 基于libmad 的简单MP3流媒体播放器的实现
- Lua module机制分析
- C#中Request.ServerVariables详细说明及代理
- 2009ACM多校联合暑期集训(7)——福州大学专场
- cassandra_0.3 源码学习笔记(1)
- 几个颜色选择器
- 创建新AppMain 加载Assembly,执行Interface
- 客户端调用XMLHTTP的过程
- java和mysql日期技巧
- jsp mysql 日期转换
- Mysql 日期转换星期
- OpenCV读取AVI文件