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. Simple Pipelined Function

    SELECT * FROM TABLE(PKG_TEST.FN_DIC_DB_TAB) CREATE OR REPLACE PACKAGE PKG_TEST IS   TYPE OBJ_DICDB_R ...

  2. 使用Response.Write实现在页面的生命周期中前后台的交互

    Response.Write()方法非常的常见,也很普通,就是向http output中输出一string.其输出的内容位于页面的最顶端,常用来实现显示一些页面消息框等逻辑. 一般来说,在页面的整个生 ...

  3. HTML5 Geolocation位置信息定位总结

    现在定位功能很常用,所以抽出一些时间将这个功能的知识总结一下作为知识梳理的依据.HTML5 Geolocation的定位用法很简单,首先请求位置信息,用户同意,则返回位置信息.HTML5 Geoloc ...

  4. “Hello world!”团队第二周贡献分规则+贡献分数分配结果

    一.贡献规则制定: (1)基础分:9 , 9 , 8 , 7 , 7 , 7 , 6(按在本次编程中承担模块的重要度制定,某一模块重要度的认定通过组内开会讨论决定) (2)会议分:每人没出勤一次会议记 ...

  5. [基于NetCore的简单博客系统]-登录

    0-项目背景 一个基于.NET CORE RAZOR PAGES的简单博客系统 技术栈全部采用微软官方实现方式,目的是熟悉新技术 项目地址:https://github.com/ganqiyin/BL ...

  6. 刷ROM必備的clockworkmod recovery

    Desire HD 手機早早就 Root,前陣子也S-OFF 變成工程版的 HBOOT(ENG S-OFF),想要刷機的朋友一定常常聽人提起 clockworkmod recovery ,接下來就是安 ...

  7. 《剑指offer》---把数组排成最小的数

    本文算法使用python3实现 1 题目描述:   输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组 $ [3,32,321] $ ,则打印出这 ...

  8. Linux内核策略介绍学习笔记

    主要内容 硬件 策略 CPU 进程调度.系统调用.中断 内存 内存管理 外存 文件IO 网络 协议栈 其他 时间管理 进程调度 内核的运行时间 系统启动.中断发生.系统调用以及内核线程. 进程和线程的 ...

  9. vi/sed等遵循的搜索正则语法

    转自:http://blog.csdn.net/lanxinju/article/details/5731843 一.查找 查找命令 /pattern<Enter> :向下查找patter ...

  10. 面试:谈谈你对Spring框架的理解

    Spring是一个优秀的轻量级框架,大大的提高了项目的开发管理与维护.Spring有两个核心模块.一个是IOC,一个是AOP. IOC: 就是控制反转的意思,指的是我们将对象的控制权从应用代码本身转移 ...