计蒜客 2018南京赛区网络赛 The writing on the wall 暴力dp

vcs中systemverilog和c/c++联合仿真 前言 systemverilog中,可以通过DPI、PLI来与外部其它语言的程序进行交互。PLI又分为三类,TF、ACC和VPI,可以认为是PLI技术的三代演进: 其中VPI(PLI3.0)是TF/ACC的一个超集,目前使用的PLI基本上都是VPI。 与PLI技术相独立的另一个技术就是DPI,DPI技术简化了systemverilog与foreign language的交互步骤,对于开发者相对友好,所以使用相对广泛一些。 本文不对DPI中程序调用/数据交互展开讨论(这部分可以参考绿皮书.. 阅读详情

题目链接:https://nanti.jisuanke.com/t/30991

Feeling hungry, a cute hamster decides to order some take-away food (like fried chicken for only 3030 Yuan).

However, his owner CXY thinks that take-away food is unhealthy and expensive. So she demands her hamster to fulfill a mission before ordering the take-away food. Then she brings the hamster to a wall.

The wall is covered by square ceramic tiles, which can be regarded as a n * mn∗m grid. CXY wants her hamster to calculate the number of rectangles composed of these tiles.

For example, the following 3 * 33∗3 wall contains 3636 rectangles:

Such problem is quite easy for little hamster to solve, and he quickly manages to get the answer.

Seeing this, the evil girl CXY picks up a brush and paint some tiles into black, claiming that only those rectangles which don't contain any black tiles are valid and the poor hamster should only calculate the number of the valid rectangles. Now the hamster feels the problem is too difficult for him to solve, so he decides to turn to your help. Please help this little hamster solve the problem so that he can enjoy his favorite fried chicken.

Input

There are multiple test cases in the input data.

The first line contains a integer TT : number of test cases. T \le 5T≤5.

For each test case, the first line contains 33integers n , m , kn,m,k , denoting that the wall is a n \times mn×m grid, and the number of the black tiles is kk.

For the next kk lines, each line contains 22integers: x\ yx y ,denoting a black tile is on the xx-th row and yy-th column. It's guaranteed that all the positions of the black tiles are distinct.

For all the test cases,

1 \le n \le 10^5,1\le m \le 1001≤n≤105,1≤m≤100,

0 \le k \le 10^5 , 1 \le x \le n, 1 \le y \le m0≤k≤105,1≤x≤n,1≤y≤m.

It's guaranteed that at most 22 test cases satisfy that n \ge 20000n≥20000.

Output

For each test case, print "Case #xx: ansans" (without quotes) in a single line, where xx is the test case number and ansans is the answer for this test case.

Hint

The second test case looks as follows:

样例输入复制

2
3 3 0
3 3 1
2 2

样例输出复制

Case #1: 36
Case #2: 20

dp【i】【j】代表以方块ij为左上角的矩阵数目。一边维护一边加。

按行优先从后向前遍历,同时维护到当前为止每一行最右侧被挖掉的方块,每一列最上边被挖掉的方块。如果某个方块下面或者右面的方块被挖掉,则以它作为左上角的矩阵数等于同行或者同列到挖掉为止的最大值。否则暴力计算符合条件的方块数。注意要沿着列计算,因为m最大为100,这样不会t(虽然不知道为什么。。)。

  • #include<bits/stdc++.h>
    #define inf 0x3f3f3f3f
    #define mod 1000000007
    #define For(i,m,n) for(int i=m;i<=n;i++)
    #define Dor(i,m,n) for(int i=m;i>=n;i--)
    #define LL long long
    #define lan(a,b) memset(a,b,sizeof(a))
    using namespace std;
    
    int vis[100010][110];
    LL dp[100010][110];
    int line[100010],clu[100010];
    
    int main()
    {
        int t;
        scanf("%d",&t);
        For(tt,1,t)
        {
            int n,m,k;
            scanf("%d%d%d",&n,&m,&k);
            lan(vis,0);
            For(i,1,n)
                line[i]=m+1,dp[i][m+1]=0;
            For(i,1,m)
                clu[i]=n+1,dp[n+1][i]=0;
            while(k--)
            {
                int x,y;
                scanf("%d%d",&x,&y);
                vis[x][y]=1;
            }
            LL sum=0;
            for(int i=n;i>=1;i--)
            {
                for(int j=m;j>=1;j--)
                {
                    if(vis[i][j]==1)
                    {
                        line[i]=j;
                        clu[j]=i;
                        dp[i][j]=0;
                        continue;
                    }
                    if(vis[i][j+1]==1)
                    {
                        dp[i][j]=clu[j]-i;
                    }
                    else if(vis[i+1][j]==1)
                    {
                        dp[i][j]=line[i]-j;
                    }
                    else
                    {
                        int minn=inf;
                        LL ans=0;
                        For(k,j,line[i]-1)
                        {
                            if(clu[k]<minn)
                                minn=clu[k];
                            ans+=minn-i;
                        }
                        dp[i][j]=ans;
                    }
                    sum+=dp[i][j];
                }
            }
    
    //        For(i,1,n)
    //        {
    //            For(j,1,m)
    //            {
    //                printf("%d\t",dp[i][j]);
    //
    //            }
    //            printf("\n");
    //        }
            printf("Case #%d: %lld\n",tt,sum);
    
        }
        return 0;
    }
    

     

一文看懂EMMC原理及工作过程 CMD:用于设备初始化和命令传输的双向通道, CMD信号有2种工作模式:1#:漏极开路--->用于初始化模式2#:推拉--->用于快速命令传输其中命令从eMMC主机控制器发送到eMMC设备,响应从设备发送到主机。DAT [7:0]:双向数据信号,模式包括:1(DAT0);默认情况下,通电或重置后,只有DAT0用于数据传输。DAT信号在推挽模式下工作,eMMC设备包括数据线DAT1-DAT7的内部上拉。进入4位模式后,设备立即断开线路DAT1、DAT2和DAT3的内部上拉; 阅读详情

相关推荐

POWER(十一)charge pump原理

电荷泵是一种基于电容充放电原理的DC-DC转换电路,通过开关控制实现电压转换,包括升压、降压和负压输出。其核心是利用电荷守恒原理,通过电容存储和转移电荷来改变输出电压。典型拓扑结构包括倍压电路和多阶升压电路,具有结构简单、体积小等优势。关键参数包括转换效率、输出电流能力和开关频率,适用于芯片供电、显示屏驱动等低功耗场景。LVDS部分补充说明了自举电路在驱动电路中的应用及其自同步特性。

zhlwsh的博客 2810

ACM-ICPC 2018 南京赛区网络预赛 B The writing on the wall

题目链接 题意:一个n*m的方格矩阵,有的格子被涂成了黑色,问该矩阵中有多少个子矩阵,子矩阵不包含黑色格子; 思路:对于一个长为L, 高为H的无黑点矩阵中包含的高为H的子矩阵个数为L+(L-1)+(L-2)+...+1个;这是直接算的一种方法;如何程序表示该计算呢? for(int i=1; i&lt;=L; i++){ for(int j=i; j&gt;0; j--){ ...

Sirius_han的博客 1899

反激系列-详细到每个容阻的原理之RCD吸收(1)

1、漏感尖峰电压会被RCD吸收,漏感能量一定,电容越大,电容充电的电压就越低,吸收能力就越强,MOS漏极的电压就越低。2、在漏感能力释放完之后(这个过程一般只有一个周期的3%时间),是要通过R1释放掉电容吸收的能量的,把电容的电压降下来方便下一次漏感尖峰来之前再进行吸收。3、电容容量和电阻需要合理搭配,容量足够即可,足够能吸收漏感尖峰电压,不至于超过MOS耐压。电阻需要足够小,小到在放电阶段把电容电压下降到MOS的电压平台。

Cuxiaoweiba的博客 3万+

ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall

题意: 方格矩形中不包括一些点,能形成多少个子矩形 思路: n*m遍历每个点,维护一下每个点最高可以到达的高度,遍历每行的点的时候,把这个点当做矩形的右下角,看能形成多少个矩形,即从这个点向左,可以到达的最大高度的和 #include &lt;bits/stdc++.h&gt; using namespace std; #define ll long long #define max_ ...

Lngxling的博客 441

MiFlash Prime免授权刷机实战:解锁小米9008 EDL救砖新方案

MiFlash Prime作为免授权刷机工具,有效解决了小米设备在9008 EDL模式下因账号验证无法救砖的难题。本文详细介绍了从驱动安装、进入EDL模式到固件刷写的完整流程,帮助用户安全快速地恢复变砖设备,是维修人员和极客的实用解决方案。

5f4d3s2a1q的博客 2874

CANOE DIVA 工程怎样在具体服务前增加前置条件

然后会在CANoe的Test Module视窗中发现一个跟系统条件相关的Test Module模块,在该模块中有生成跟系统条件相关的CAPL 脚本。这里需要根据你的实际项目进行更改,diva工程加载到canoe的工程的时候,会同步加入你创建的cdd文件,这里示例的ABS_ESP 就是你的cdd的ECU命名,后面就是具体的前置条件服务。4、配置完成后,测试用例就会如下图Trace窗口所示,在每一次10 02请求之前都会调用CAPL Function的PreconditionCheck函数中定义的脚本。

weixin_45940007的博客 1964

2018 ICPC南京站网络赛 The writing on the wall(单调栈求全1子矩阵数量)

Feeling hungry, a cute hamster decides to order some take-away food (like fried chicken for only 3030 Yuan). However, his owner CXY thinks that take-away food is unhealthy and expensive. So she deman...

untilyouydc 809

微信开发 - 最新第三方网站接入微信登录、微信支付时,本地 redirect_uri 参数错误导致无法调试的解决方案(微信开放平台)完美解决每次都需要部署到线上测试,在本地使用本地 ip 就能轻松调试

redirect_uri参数错误,微信第三方登录,没有服务器时的测试方法,微信开放平台的回调域名怎么设置为本地域名IP,微信登录微信支付每次调试都需要放到服务器上怎么办,微信登录支付业务在本地调试不了怎么办,在本地怎么测试微信支付和登录,微信第三方登陆本地测试,怎么在本地进行测试,微信回调域怎么设置为本地IP,微信扫码登录redirect_uri参数错误,微信开放平台,微信开放平台开发的第三方登录和支付,vue2,nuxt2,vue3,nuxt3,uniapp,微信开放平台,公众号,微信支付,微信登录授权,

🏆 前端领域优质创作者 8791

ACM-ICPC 2018 南京赛区网络预赛 The_writing_on_the_wall 单调栈 思路

The writing on the wall  2000ms  262144K Feeling hungry, a cute hamster decides to order some take-away food (like fried chicken for only 30 Yuan). However, his owner CXY thinks that take-away food...

OtterVのrecorder 319

YOLOv5基于深度学习的道路缺陷检测系统

然而,由于长期的自然侵蚀、车辆磨损等因素,道路表面容易出现裂缝、坑洼等缺陷。这些缺陷不仅会影响驾驶舒适性,还可能引发交通事故,尤其是在恶劣天气或夜间行车条件下。随着人工智能技术的快速发展,基于深度学习的道路缺陷检测技术能够在降低人力成本的同时提高检测效率,为道路维护提供了新的解决方案。本项目构建了基于YOLOv5的道路缺陷检测系统,结合PyQt5开发了用户友好的UI界面,具备实时检测和图片分析功能。工具对图片进行标注,生成YOLO格式的标注文件。上传包含道路裂缝或坑洼的图片,系统会标注出缺陷的位置及类别。

YOLO 1076

详细分析 Bladex中的swagger-resources资源未授权访问的解决方法

有如下方式,网关过滤、去除配置以及修改代码还有隐藏彩蛋(附Demo),推荐阅读

码农研究僧的博客 1727

2018 icpc 南京网络赛

题目:链接 A. An Olympian Math Problem 输出n-1即可(女朋友猜的)。 #include&lt;bits/stdc++.h&gt; using namespace std; #define ll long long ll fac[103]; int main() { ll n,T;cin&gt;&gt;T; while(T--) { ...

albertluf的博客 2357

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

计蒜客 AC Challenge (2018 ICPC亚洲区域赛网络赛 南京 E)(状压DP)

题目链接:https://nanti.jisuanke.com/t/30994   Dlsj is competing in a contest with n (0 &lt; n \le 20)n(0&lt;n≤20) problems. And he knows the answer of all of these problems. However, he can submit ii-t...

LP_Cong 1372

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

2018ACM/ICPC南京网络赛B-The writing on the wall (补题)

题目链接 题意:求n*m的区域中不含有黑色格子的矩形数量。 这题给了2s的时限,m只给了100,暴力复杂度可以是O(n*m*m),接近1e9,能过,大概1300+ms。。。因为高中的时候懒得学组合数学,导致现在对计数的东西一窍不通,连没有黑色格子的情况居然都想不清楚QAQ 这是一篇讲解本题的博客 看了上面链接的博客后,有种恍然大明白的感觉,现在开始讲讲我理解的做法。 首先,假设没有黑...

qq_38515845的博客 745

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ACM-ICPC 2018 南京赛区网络预赛 B-The writing on the wall

Feeling hungry, a cute hamster decides to order some take-away food (like fried chicken for only 3030 Yuan). However, his owner CXY thinks that take-away food is unhealthy and expensive. So she deman...

一只小陀螺的博客 746

ACM-ICPC 2018 南京赛区网络预赛 B The writing on the wall(暴力)

ACM-ICPC 2018 南京赛区网络预赛 B The writing on the wall 这道题不想写了,直接看我队友的写的博客吧,网上其他博客其他方法我也看不懂。。 ACM-ICPC 2018 南京赛区网络预赛 B The writing on the wall code: #include &lt;bits/stdc++.h&gt; using namespace std; t...

codeswarrior的博客 823

ACM-ICPC 2018 南京赛区网络预赛

这次服务器很流畅,比赛体验很棒,上次杭电那场真的是气到爆炸交了题要三个小时才知道结果 要有计蒜客就算超时了也可以看到超了多少(1000ms以上会显示1009ms) 队友这次有点迷茫,两个人卡在最后那道图论题3个小时,结果还是我转过去暴力过的,所以今天做出来的四道基本上是我一个人敲出来的。所以说个人的实力还是很重要的,我们这边的一队两个人就做出10道题排名34。。。望尘莫及啊!不过还好,我才学了...

QAQ 1096

ACM-ICPC 2018 南京赛区网络预赛 B-The writing on the wall 暴力or经典单调栈

Feeling hungry, a cute hamster decides to order some take-away food (like fried chicken for only 303030 Yuan). However, his owner CXY thinks that take-away food is unhealthy and expensive. So she dem...

人生如戏 315

ACM-ICPC 2018 南京赛区网络预赛 J.Sum(线性筛选,分解质因数)

题目链接:Sum 样例输入 2 5 8 样例输出 8 14 题意:定义f[i]函数代表i=a*b的对数,其中a和b都不能是平方数的倍数,a*b与b*a不相同,t组样例,给出n,求1~n的f[i]之和 思路:一个数n分解质因数为 ,且有,容易得到这样的规律,遍历所有的e,当e=1时,f[i]=f[i]*2,当e=2时,f[i]不变,当e&gt;2时,f[i]=0。如果直接一个一个分解质因...

yz467796454的博客 1133

计蒜客 ICPC南京网络赛 The Great Nim Game(线性基)

      大致题意:Nim游戏,是指有n堆石子,每堆石子有ai个石子,两个人轮流取,每次可以取一堆的至少一个石子,最后取不的人输。现在告诉你总共有N堆石子,这个N很大,可以有10^10000000这么大,然后每一堆的石子数量有一个产生式。你的任务是在这N堆石子中,任意选取几堆石子,使得先手必胜,问方案数。 首先,根据定理,Nim游戏要使得先手必胜,必须要所有堆的石子数量的...

alpc_qleonardo 502

南京网络赛B-The writing on the wall

 30.43%  2000ms  262144K Feeling hungry, a cute hamster decides to order some take-away food (like fried chicken for only 3030 Yuan). However, his owner CXY thinks that take-away food is unhealthy ...

wybooooooooo的博客 271

ACM-ICPC 2018南京赛区网络预赛 J Sum(线性筛)

A square-free integer is an integer which is indivisible by any square number except 11. For example, 6 = 2 \cdot 36=2⋅3 is square-free, but 12 = 2^2 \cdot 312=22⋅3 is not, because 2^222 is a square n...

yypurpose的博客 1031

2018ICPC南京赛区网络选拔B The writing on the wall (单调栈)

2018ICPC南京赛区网络选拔B The writing on the wall (单调栈) 题目链接: https://nanti.jisuanke.com/t/30991 代码: #include&amp;lt;bits/stdc++.h&amp;gt; using namespace std; const int maxn=1e5+5; #define push_back pb; vect...

Dyswan的博客 202

ACM-ICPC 2018 南京赛区网络预赛---总结

ACM-ICPC 2018 南京赛区网络预赛 总结 与dq队差距 4题 A 水题 B pair卡常 补题链接:https://blog.youkuaiyun.com/axuhongbo/article/details/82289535 E 裸状压dp http://www.cnblogs.com/dilthey/p/9570205.html my_code #includ...

axuhongbo的博客 2182

ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall(暴力,单调栈)

ACM-ICPC 2018 南京赛区网络预赛 B. The writing on the wall 题目 给一个 n * m 的矩阵,和 k 个矩阵上的污点,问没有在污点上的子矩阵有多少。 分析 首先想如果没有污点,怎么算所有矩阵。 枚举子矩阵右下角,n * m种情况。在确定子矩阵右下角为 (i, j)时,考虑长宽,因为本题 m 范围 100,所以枚举宽,1~m,每种宽对应 i 种高。代码: f...

Stormjing的博客 385

【计蒜客】2018ICPC南京赛区网络赛J Sum(素数筛+找规律)

题目链接 【题意】 f(i):能拆成两个数的乘积,并且这两个数要求没有平方因子,并且两个数的位置互换算两种方案。 最后求f(1)+f(2)+f(3)+...f(n)。   【解题思路】 还是对欧拉筛的理解不够透彻,比赛的时候一直是筛完素数再去求解f(i),其实是可以一边筛一边求解的。 不难发现,当i是素数时,f(i)=2,当i有3个及以上相同因子时,f(i)=0(比如2*2*...

よろしくお願いします 287
上一篇: hdu 6394 树分块
下一篇: hdu 6373 Pinball
Dale_zero
博客等级 码龄9年 10粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值