T1 外星人

二维前缀和

#include<cstdio>
#define N 1001
using namespace std;
bool v[N][N];
int sum[N][N];
int main()
{
freopen("alien.in","r",stdin);
freopen("alien.out","w",stdout);
int r,c,p,q;
scanf("%d%d%d%d",&r,&c,&p,&q);
int x,y;
for(int i=;i<=p;i++)
{
scanf("%d%d",&x,&y);
v[x][y]=true;
}
for(int i=;i<=r;i++)
for(int j=;j<=c;j++)
sum[i][j]=sum[i-][j]+sum[i][j-]-sum[i-][j-]+v[i][j];
int ans=;
while(q--)
{
scanf("%d%d",&x,&y);
for(int i=;i<=r;i++)
for(int j=;j<=c;j++)
{
if(i-x>= && j-y>= && sum[i][j]-sum[i-x][j]-sum[i][j-y]+sum[i-x][j-y]==) ans++;
if(x==y) continue;
if(i-y>= && j-x>= && sum[i][j]-sum[i-y][j]-sum[i][j-x]+sum[i-y][j-x]==) ans++;
}
printf("%d\n",ans); ans=;
}
}

T2 游戏

点权*2

边权分别加到两个点上

排序、贪心、两人轮流选当前最大

点权乘了2,边权是自己的乘了2,不是自己的减了去

最后除2就是答案

#include<cstdio>
#include<algorithm>
#include<iostream>
#define N 10001
using namespace std;
int a[N];
int main()
{
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++) scanf("%d",&a[i]),a[i]<<=;
int u,v,w;
while(m--)
{
scanf("%d%d%d",&u,&v,&w);
a[u]+=w; a[v]+=w;
}
sort(a+,a+n+,greater<int>());
int ans=;
for(int i=;i<=n;i+=)
{
ans+=a[i];
ans-=a[i+];
}
printf("%d",ans>>);
}

T3 堡垒

当时改了最后一行的输出,忘了改成啥了

所以就忽略最后一行输出吧

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char move;
int m,n,xx,yy;
int sum,tmp,maxn,big;
int E[][][][],N[][][][];
bool v[][];
void dfs(int x,int y)
{
v[x][y]=true; tmp++;
if(x!= && !N[x][y][x-][y] && !v[x-][y]) dfs(x-,y);
if(y!=m && !E[x][y][x][y+] && !v[x][y+]) dfs(x,y+);
if(x!=n && !N[x+][y][x][y] && !v[x+][y]) dfs(x+,y);
if(y!= && !E[x][y-][x][y] && !v[x][y-]) dfs(x,y-);
}
int main()
{
freopen("fortress.in","r",stdin);
freopen("fortress.out","w",stdout);
int x;
scanf("%d%d",&m,&n);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
scanf("%d",&x);
if(x&(<<))
N[i][j][i-][j]=true;
if(x&(<<))
E[i][j][i][j+]=true;
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
if(!v[i][j])
{
sum++; tmp=;
dfs(i,j);
maxn=max(maxn,tmp);
}
printf("%d\n%d\n",sum,maxn);
for(int i=n;i>=;i--)
for(int j=;j<=m;j++)
{
if(i!= && N[i][j][i-][j])
{
memset(v,,sizeof(v));
N[i][j][i-][j]=false;
tmp=;
dfs(i,j);
if(tmp>maxn) maxn=tmp,xx=i,yy=j,move='N';
N[i][j][i-][j]=true;
}
if(j!=m && E[i][j][i][j+])
{
memset(v,,sizeof(v));
E[i][j][i][j+]=false;
tmp=;
dfs(i,j);
if(tmp>maxn) maxn=tmp,xx=i,yy=j,move='E';
E[i][j][i][j+]=true;
}
}
printf("%d\n",maxn);
printf("%d %d %c",xx,yy,move);
}

2017 济南综合班 Day 4的更多相关文章

  1. 2017 济南综合班 Day 7

     a 两个指针L.R R开始指向恰好[R,n]有不超过k个逆序对的地方 随着L的右移,R指针只会右移 逆序对有2部分 1.L左侧与其他位置形成的逆序对 2.R右侧与其他位置形成的逆序对 用树状数组分别 ...

  2. 2017 济南综合班 Day 6

    循环移动 (cyclic.cpp/c/pas) (1s/256M) 问题描述 给出一个字符串S与N个操作.每个操作用三元组(L, R, K)进行描述:操作将字符串第L个到第R个位置构成的子串循环移动K ...

  3. 2017 济南综合班 Day 5

    毕业考试 (exam.cpp/c/pas) (1s/256M) 问题描述 快毕业了,Barry希望能通过期末的N门考试来顺利毕业.如果他的N门考试平均分能够达到V分,则他能够成功毕业.现在已知每门的分 ...

  4. 2017 济南综合班 Day 3

    T1  黑化 题意: 求一个字符串是否可能包含另一个字符串 字符串中的?可以匹配任意字母 可能输出 God bless You! 一定不可能 输出 Game Over! 计算fail数组时,fail数 ...

  5. 2017 济南综合班 Day 2

    木棍(stick) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有很多木棍,具体的,总共有n根,且每根木棍都有一个长度.为了方便起见,我们可以用一个正 ...

  6. 2017 济南综合班 Day 1

    送分题(songfen) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK喜欢干一些有挑战的事,比如说求区间最大子段和.它知道这个题目有O(n)的做法.于 ...

  7. 2017 济南精英班 Day1

    不管怎么掰都是n*m-1 #include<cstdio> using namespace std; int main() { freopen("bpmp.in",&q ...

  8. JavaScript脚本语言基础(四)

    导读: JavaScript和DOM DOM文档对象常用方法和属性 DOW文档对象运用 JSON数据交换格式 正则表达式 1.JavaScript和DOM [返回] 文档对象模型(Document O ...

  9. JeeSite(2):导入数据,进入系统

    本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50954485 未经博主同意不得转载. 博主地址是:http://blog.csd ...

随机推荐

  1. Fluent Python: Mutable Types as Parameter Defaults: Bad Idea

    在Fluent Python一书第八章有一个示例,未看书以先很难理解这个示例运行的结果,我们先看结果,然后再分析问题原因: 定义了如下Bus类: class Bus: def __init__(sel ...

  2. es6从零学习(一)let 和 const 命令

    es6从零学习(一):let 和 const 命令 一:let 变量 1.块级作用域{}:let只在自己的块级作用域内有效. for(let i =0;i<3;i++) { console.lo ...

  3. 第十八次ScrumMeeting会议

    第十八次Scrum Meeting 时间:2017/12/8 地点:线上+SPR咖啡馆 人员:蔡帜 王子铭 游心 解小锐 王辰昱 李金奇 杨森 陈鑫 赵晓宇 照片: 目前工作进展 名字 今日 明天的工 ...

  4. HDU 5816 Hearthstone 概率dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5816 Hearthstone Time Limit: 2000/1000 MS (Java/Othe ...

  5. 团队作业7——第二次项目冲刺(Beta版本)-第二篇

    1.工作分工: 团队成员 分工 郭达22120 项目整合,后台代码 刘德培44060 数据库模块 石浩洋22061 前台界面优化 曾繁钦22056 前台界面优化.测试 孙斌22030 后台代码 2.燃 ...

  6. 201621123033 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 接口 Comparable Comparator 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需要出现过多的 ...

  7. hadoop2.5.2学习及实践笔记(五)—— HDFS shell命令行常见操作

    附:HDFS shell guide文档地址 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/FileSy ...

  8. SQL SERVER技术内幕之10 事务并发

    1.事务 1.1事务的定义 事务是作为单个工作单元而执行的一系列操作.定义事务边界有显式和隐式两种.显式事务的定义以BEGIN TRAN作为开始,以COMMIT TRAN提交事务,以ROLLBACK ...

  9. java 基础 --多态--009

    1, 多态:同一个对象(事物),在不同时刻体现出来的不同状态 2, 多态的前提: A: 要有继承关系 B: 要有方法的重写 C: 要有父类引用指向子类对象 父 f = new 子(); 3, 多态访问 ...

  10. vector中数据进行去重和排序

    , , , , , , ,}; std::vector<int> vec(a, a+sizeof(a)/sizeof(int) ); std::sort(vec.begin(), vec. ...