屯题1

1.UOJ118  赴京赶考

考虑a[i]!=a[i+1],那么无论哪一行,这两个相邻的走过去都需要1的代价

同样的b[i]!=b[i+1],那么无论哪一列,这两个相邻的走过去都需要1的代价

所以(x,y)走到(xx,yy)等价于x走到xx的最小代价(1维情况即可)

+y走到yy的最小代价(也是1维情况)

维护一个前缀和就好了

代码如下

#include<bits/stdc++.h>
#define N 500005
using namespace std;
int n,m,Q,xc,xs,yc,ys,a[N],b[N],sumh[N],suml[N];
int main(){
    scanf("%d%d",&n,&m);
    for (int i=1;i<=n;i++) scanf("%d",&a[i]);
    for (int i=1;i<=m;i++) scanf("%d",&b[i]);
    for (int i=2;i<=n;i++) sumh[i]=sumh[i-1]+(a[i]!=a[i-1]);
    for (int i=2;i<=m;i++) suml[i]=suml[i-1]+(b[i]!=b[i-1]);
    scanf("%d",&Q);
    while (Q--){
        scanf("%d%d%d%d",&xs,&ys,&xc,&yc);
        if (xs>xc) swap(xs,xc);
        if (ys>yc) swap(ys,yc);
        int tmp=sumh[xc]-sumh[xs];
        tmp=min(tmp,sumh[n]-sumh[xc]+(a[1]!=a[n])+sumh[xs]);
        int ans=tmp;
        tmp=suml[yc]-suml[ys];
        tmp=min(tmp,suml[m]-suml[yc]+(b[1]!=b[m])+suml[ys]);
        printf("%d\n",tmp+ans);
    }
    return 0;
}

原文地址:https://www.cnblogs.com/ckr1225/p/9643106.html

时间: 2024-10-21 10:25:51

屯题1的相关文章

屯题 - -。

2015-09-12 21:59:09 最近屯题: 1:319 div1 D 分段矩阵快速幂 + floyd 2:319 div2 B 鸽巢原理 3:ZOJ 9月月赛 H题 NTT 4:ZOJ 9月月赛 K题 容斥 5:ZOJ 9月月赛 G题 负坐标积分出问题?

屯题计划

感觉lxt一天到晚就是在浪啊浪, 毫无斗志, 颓废得不得了, 每天看小说玩手机到三四点然后整个人都是乱七八糟的. 不行不行我要振作起来了! 从最开始学语言到现在都快两年过去了 T T , 代码能力还是渣成这样简直不能看 T T 觉得应该学学zj爷们屯题. 加油! (题目是直接从劼很久以前的几篇屯题计划里边搬过来的我之前做过的题就删掉了 [BZOJ1822][JSOI2010]Frozen Nova 冷冻波 很水的网络流加计算几何, 然而计算几何部分非常莫名奇妙, 题目应该是判断一个圆是否与一个线

屯题大法好

CF 535C Tavas and Karafs 题目大意:给你一个无限长的等差数列,每次给一个起点L,可以吃T轮,每可以把M个数吃一口(-1),问最大的R使得区间[L,R]被吃完 思路:显然给定一个区间[L,R]后很容易贪心出能不能被吃完,并且发现该性质有单调性也就是如果[L,R]可以吃完,那[L,R-1]也可以,且存在最大的R使得[L,R+1]不满足条件,于是二分一下就可以了 1 #include<iostream> 2 #include<cstdio> 3 #define l

屯题... 8.3

2015-08-03 00:12:31 ... SCOI 1293 - 1298 ... CDQ 分治论文.例题

[屯题] DP系列

P1222P1009P1037P1207P2326P1677P1669P1642P1679P1233P1668P1898P1806P1492P1801P1592P1537P2442P2201P1649P1633P1643P3688P3704P1046P1584P1710P2101P1672P1664P2023P3297P1025P2364P1044P2091P1023P1093P3437P3427P1089P2708P3791P1487P3770P3769P2298P1049P3036P1485

【搭楼】做题记录

以后做了题还是在这里写一下,觉得好的再去发题解(感觉无脑发题解意义不大) 也不一定是做了的题,看了没打但觉得不错的也可以发上来 (5.23-5.24 第三次月考被X得相当爽) 5.23 星期六 [贪心]Bzoj4027 HEOI2014 兔子与樱花 要是父亲合并儿子又合并就混乱了.然后发现,反正贡献都是一?能合并就在儿子处合并?贪心. [分块]Bzoj3343 教主的魔法 做之前知道了tag,于是很快就想到了算法.还没打过分块呢,于是先去膜拜了一下别人的代码.自己打出来后各种WA,太晚了没调出来

BZOJ一天提交 51纪念(二)

今天作死又交了一发呢...于是屯题就全用完啦~ 有一次拷错CE,还有一次本来的程序就是错的的说... 可是我希望看到我努力的人并不会看到我的努力呢,尽管如此一个人也要坚持走到底哦,就如同这不完美的提交一样呢.但是49 = 72才是最好看的哟!

【考试】数学round1# 15/06/22

先说结果,本场考试三傻逼题,我这个逗比只有220,虽然虐了rank2 70分,但在我校比较没有任何意义,这都不能AK真是见了鬼了 本次考试考的是初等数论,T1约数T2T3唯一分解,T1各种不爽,T2T3各种无聊 T1 War 题意 有N个点,点有权,ij间边的权值为gcd(wi,wj),任意两点间可连边,求最大生成树.n,wi<=1e6. 扯淡 一看到数据范围整个人都吓傻了 然后这道题我是最后做的... 我们发现wi<=1e6,这显然是暗示我们开桶的节奏 对于每个数wi,找它的约数 约数相同的

校实验室 软件班 拓展题1

命题人:  卿笃军 拓展题 系列I之科普系列(共10道题目,总分15分,结算时,将你所得的分数换算成5分制,如:得了9分就是3分): 1.编写一段代码,要求输出分别"烫烫烫..."和"屯屯屯...",并简要说明原因.(2分) 2.C++小知识: (1).C++中函数的默认参数.            可以查看: C++ Primer Plus 275页. (2).C++中函数重载.                  可以查看:C++ Primer Plus 277页