首页 > 其他分享 >2022 ICPC 南京 A

2022 ICPC 南京 A

时间:2023-01-12 16:58:16浏览次数:50  
标签:int 南京 ICPC ++ else -- 2022 x1

Stop, Yesterday Please No More

和很多题解不同的是 我记录的是袋鼠的左上和右下两个点
最后我们再用洞反向去吃袋鼠即可 这样问题就转化成了 一个规则矩形和一个路径相交
看到一个规则矩形我们马上反应到就是二位前缀和可以快速计算
然后就是这个路径起点我们定义为n m 即可 他最多就跑n-1那么远 不然一定就全部出界了
之后我们就枚举洞的起始坐标 因为在二维前缀和数组里洞是n m开始的 我们还要算 左上右下和起始坐标的相对差值再加上n m

void solve(){
    int n,m,k;cin>>n>>m>>k;
    int x1=1,y1=1,x2=n,y2=m;
    string s;cin>>s;
    for(auto i:s){
        if(i=='U'){
            x1=max(1ll,x1-1);
            if(x2==1){
                if(!k)cout<<n*m<<endl;
                else cout<<0<<endl;
                return;
            }
            x2=max(1ll,x2-1);
        }else if(i=='D'){
            if(x1==n){
                if(!k)cout<<n*m<<endl;
                else cout<<0<<endl;
                return;
            }
            x1=min(n,x1+1);
            x2=min(n,x2+1);
        }else if(i=='L'){
            y1=max(1ll,y1-1);
            if(y2==1){
                if(!k)cout<<n*m<<endl;
                else cout<<0<<endl;
                return;
            }
            y2=max(1ll,y2-1);
        }else if(i=='R'){
            if(y1==m){
                if(!k)cout<<n*m<<endl;
                else cout<<0<<endl;
                return;
            }
            y1=min(m,y1+1);
            y2=min(m,y2+1);
        }
    }
    int now=(x2-x1+1)*(y2-y1+1),x=n,y=m,f[2*n+1][2*m+1];
    memset(f,0,sizeof f);
    f[x][y]=1;
    for(int i=s.size()-1;i>=0;i--){
        if(s[i]=='U')x--;
        else if(s[i]=='D')x++;
        else if(s[i]=='L') y--;
        else y++;
        f[x][y]=1;
    }
    for (int i = 1; i <= n * 2 ; i++) for (int j = 1; j <= m * 2 ; j++) f[i][j] += f[i][j - 1];
    for (int i = 1; i <= n * 2 ; i++) for (int j = 1; j <= m * 2 ; j++) f[i][j] += f[i - 1][j];
    int ans=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            int x3=x1-i+n,y3=y1-j+m,x4=x2-i+n,y4=y2-j+m;
            int t=f[x4][y4]-f[x4][y3-1]-f[x3-1][y4]+f[x3-1][y3-1];
            if(t==now-k)ans++;
        }
    }
    cout<<ans<<endl;
}

标签:int,南京,ICPC,++,else,--,2022,x1
From: https://www.cnblogs.com/ycllz/p/17047084.html

相关文章

  • 2022 年度总结
    前言写这篇博客的起因是,公司要求写年度个人总结。我翻了下网上的总结,都不太符合自己的情况,于是打算真情实感地原创一篇。年度总结,无非就是梳理下有没有完成年初的flag,再......
  • 2022年中国数据库排行榜年终盘点-墨天轮
    深山虎啸雄风在,绿野兔奔好景来。 崭新的2023年已经到来,在2022年里,国产数据库行业发生了翻天覆地的变化,投融资此起彼伏,国产化替代进程加速,国产数据库行业发展的如火如荼。......
  • 洛谷 P8077 [WC2022] 序列变换 题解
    题目链接。WC2023之前补一下WC2022的题,参考了官方题解。首先,把括号序列转化为二叉树,\(\texttt{(A)B}\)转为一个点的左子树是\(A\),右子树是\(B\)。相当于括号序列先......
  • CSP-J/S 2022 游记
    9.18初赛日J组选择比程序阅读和填空难(反正有E不管了(S比去年简单不少(至少程序基本都看懂了)就是质量严重下降,好多云里雾里的,建议重修语文(S估分大概60多吧,如果spasmodic......
  • 2019 ICPC Shanghai Site记录
    K-ColorGraph发现\(n\)只有\(16\),可以爆搜!考虑到无奇环和二分图互为充要条件,只要暴力枚举在二分图左边还是右边,根据定义看最多能保留多少条边就可以了!查看代码#in......
  • 2022铁人三项pwn wp
    heap2019一点也不会,太菜了,zikh师傅太强了直接带我入门io保护比赛时一脸懵比,已经隐隐感觉与io有关,就知道跟我没关系了漏洞利用输入的时候没有\x00截断且下面有一个pu......
  • 腾讯云-2022年4季度收费调整的产品汇总
    云服务器CVM 关于新加坡地域竞价实例弹性优惠公告竞价实例费用为原来的25%左右.覆盖大部分产品.https://cloud.tencent.com/document/product/213/82558云服务器系统......
  • 2022年深度学习在时间序列预测和分类中的研究进展综述
    时间序列预测的transformers的衰落和时间序列嵌入方法的兴起,还有异常检测、分类也取得了进步2022年整个领域在几个不同的方面取得了进展,本文将尝试介绍一些在过去一年左右......
  • 年中盘点 | 2022年,PaaS 再升级
    过去十五年,是云计算从无到有突飞猛进的十五年。PaaS作为云计算的重要组成部分,在伴随着云计算高速发展的同时,在云计算产业链中的关键性作用日渐凸显。关于PaaS,很多人都认......
  • 复旦大学2022--2023学年第一学期高等代数I期末考试情况分析
    一、期末考试成绩班级前十名的同学祁振宁(100)、张家溢(90)、李燊旭(90)、马琪旻(90)、秦保睿(90)、肖竣严(90)、盖括(90)、潘飞越(90)、孙珺阳(89)、洪昕(89)、林鑫(89)......