/*
大模拟题,做的时候思路还是比较清晰的
*/
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#define ll long long
#define fo(i,l,r) for(int i = l;i <= r;i++)
#define fd(i,l,r) for(int i = r;i >= l;i--)
using namespace std;
const int maxn = ;
ll read(){
ll x=,f=;
char ch=getchar();
while(!(ch>=''&&ch<='')){if(ch=='-')f=-;ch=getchar();};
while(ch>=''&&ch<=''){x=x*+(ch-'');ch=getchar();};
return x*f;
}
int n,m;
int dx[] = {,,-,};
int dy[] = {-,,,};
int flag[][];
bool vis[][];
ll mp[][],d,k,v;
ll ans1,ans2;
ll judge(int y,int x,ll val){
if(y < || y > n || x < || x > n || vis[y][x]) return -;
if(!mp[y][x]) return val;
if(mp[y][x] == val) return val*;
return -;
}
bool tran(int op){
memset(vis,false,sizeof(vis));
bool cg = false;
int st1,ed1,dr1,st2,ed2,dr2;
int ny,nx,cy,cx;
ll tmp,rst;
d = read();
k = read();
v = read();
if(d == ){
st1 = n;
ed1 = ;
dr1 = -;
}else{
st1 = ;
ed1 = n;
dr1 = ;
}
if(d == ){
st2 = n;
ed2 = ;
dr2 = -;
}else{
st2 = ;
ed2 = n;
dr2 = ;
}
for(int i = st1;;i += dr1){
for(int j = st2;;j += dr2){
tmp = mp[i][j];
cy = i;
cx = j;
if(tmp)while(){
ny = cy + dy[d];
nx = cx + dx[d];
rst = judge(ny,nx,tmp);
if(rst == -) break;
else{
cg = true;
mp[cy][cx] = ;
mp[ny][nx] = rst;
if(rst != tmp){
ans2 += rst;
vis[ny][nx] = true;
break;
}
cy = ny;
cx = nx;
}
}
if(j == ed2) break;
}
if(i == ed1) break;
}
if(!cg) return false;
ans1++;
ll r = ;
memset(flag,,sizeof(flag));
fo(i,,n){
fo(j,,n){
if(!mp[i][j]) flag[i][j] = ++r;
}
}
fo(i,,n){
fo(j,,n){
if(flag[i][j] == + k%r) mp[i][j] = v;
}
}
return true;
}
int main(){
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
n = read();
m = read();
int x,y,v;
y = read();x = read();v = read();mp[y][x] = v;
y = read();x = read();v = read();mp[y][x] = v;
fo(op,,m){
if(!tran(op)) break;
}
cout<<ans1<<endl<<ans2<<endl;
return ;
}

LYDSY模拟赛day9 2048的更多相关文章

  1. LYDSY模拟赛day1 String Master

    /* 暴力枚举两个后缀,计算最长能匹配多少前缀. 最优策略一定是贪心改掉前 k 个失配的字符. 时间复杂度 O(n3). */ #include<cstdio> ],b[]; int ma ...

  2. LYDSY模拟赛day1 Tourist Attractions

    /* 假设路径是 a − b − c − d,考虑枚举中间这条边 b − c,计 算有多少可行的 a 和 d. 设 degx 表示点 x 的度数,那么边 b − c 对答案的贡献为 (degb − 1 ...

  3. LYDSY模拟赛day1 Walk

    /* 依旧考虑新增 2^20 个点. i 只需要向 i 去掉某一位的 1 的点连边. 这样一来图的边数就被压缩到了 20 · 2^20 + 2n + m,然后 BFS 求出 1 到每个点的最短路即可. ...

  4. LYDSY模拟赛day2 Divisors

    /* 注意分解质因数,如果i是,那么n/i也是,这样就可以解决分解质因数的时间问题了 当 k ≥ 1 时,只有这些数的约数才会对答案产生贡献. 求出 m 个数的所有不超过 n 的约数,去重后统计即可. ...

  5. LYDSY模拟赛day2 Market

    /* orz claris,这个题的解法非常巧妙,首先是时间问题,其实这个问题只要离线处理一下就可以了,把物品和询问都按照时间排序,然后看一下能不能满足.然后,因为容量<=10^9,显然是不可能 ...

  6. LYDSY模拟赛day2 Dash Speed

    /* 弃坑 */ #include<cstdio> #include<algorithm> using namespace std; ,M=N*; ],nxt[N<< ...

  7. LYDSY模拟赛day3 序列

    NOIP不考可持久,弃坑

  8. LYDSY模拟赛day3 涂色游戏

    /* 非常好的题 */ #include <cstdio> #include <iostream> #include <cstdlib> #include < ...

  9. LYDSY模拟赛day3 平均数

    [ 问题描述]有一天, 小 A 得到了一个长度为 n 的序列.他把这个序列的所有连续子序列都列了出来, 并对每一个子序列都求了其平均值, 然后他把这些平均值写在纸上, 并对它们进行排序,最后他报出了第 ...

随机推荐

  1. Uva10881 Piotr's Ants

    蚂蚁相撞会各自回头.←可以等效成对穿而过,这样移动距离就很好算了. 末状态蚂蚁的顺序和初状态其实是相同的. 那么剩下的就是记录每只蚂蚁的标号,模拟即可. /*by SilverN*/ #include ...

  2. AngularJs $interpolate 和 $parse

    $interpolate 将一个字符串编译成一个插值函数.HTML编译服务使用这个服务完成数据绑定. 使用:$interpolate(text,[mustHaveExpression],[truste ...

  3. iOS - 全屏滑动

    取经地址 1.使用关联 关联是指把两个对象相互关联起来,使得其中的一个对象作为另一个对象的一部分. 使用关联,是基于关键字的,因此,我们可以为任意对象增加任意多的关联,但是关键字是唯一的.关联可以保证 ...

  4. 强大的css3

    强大的css3 我们知道,这几年来智能手机的高速发展使得人们使用移动端上网的时间和人数已经超过了PC端.例如在2015年,就中国电商而言,各电商平台在移动端持续发力,移动端购物占比不断攀升,双11期间 ...

  5. BZOJ2124: 等差子序列

    题意:给一个 1 到 N 的排列{Ai},询问是否存在 1<=p1<p2<p3<p4<p5<…<pLen<=N(Len>=3),使得 Ap1,Ap ...

  6. Linux下Memcache 安装和使用

    Memcached是一种高性能的分布式内存对象缓存系统(memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能,其“分布式”由客户端函数库完成,成熟算法的为一致性Hash),用 ...

  7. [Redis]如何通过Powershell创建Redis服务

    目前Redis在中国上线了,不过只是预览版而且不能通过Portal进行操作,不过可以通过Powershell创建,具体如下: 下载最新的Powershell SDK:http://www.window ...

  8. PNG类库

    libpng depends on Zlib http://www.libpng.org/pub/png/libpng.html LodePNG http://lodev.org/lodepng/ P ...

  9. ecshop团购显示“库存不足”

    产生原因:是因为产品设置了多属性 解决办法:打开group_buy.php 第 267行找到 empty($product_info) ? $product_info = array(, ) : '' ...

  10. ViewController respondsToSelector:]: message sent to deallocated instance

    今天突然遇到这个问题,其实昨天下班的时候就已经有这个问题了, 就是先进入一个画页,然后再快速离开这个画页再进入其他画页就出现这个错误 了 找了好久也没有找出问题来,一开始以为是网络任务没有cancel ...