首页 > 其他分享 >CSP模拟3

CSP模拟3

时间:2023-07-22 21:11:06浏览次数:33  
标签:int long 模拟 ans include CSP dp 回文

A. 回文

\(20\) 多分的纯暴力搜索,\(A_{i,j} = A_{i-1,j+1}\) 可以判完回文直接递推出路径数,共 \(42 \text{pts}\)。

正解 \(DP\)。

回文可以转化一下思路,两个人分别从 \((1,1),(n,m)\) 出发,走的路径相同的方案数。

设计 \(dp[i][j][s][t]\) 为第一个人在 \((i,j)\) 位置,第二个人在 \((s,t)\) 位置的方案数。

转移要注意步数相同,即 \(i + j - 2 = n + m - s - t\)。

因为我们每走一步会使你的坐标 \(x + y\) 加上 \(1\),又因为我们坐标都是从 \(1\) 开始的,所以第一个人路径长度就是 \(x + y - 2\)。

第二个人由于是从 \(n + m\) 开始,不太一样。

所以就可以压掉一维,\(t = n + m + 2 - s - i - j\)(好长)。

最后要考虑一下回文有两种情况,一种是长度为奇数,即最后两个人走到同一个位置;另一种长度为偶数,即二者相邻的状态,这种要考虑两种相邻的情况(上下和左右)。

这个思路来自sandom学长的博客,稍微解释地详细了一下。

这道题最坑的就是模数 \(993244853\)!!!!!!

注意,全开 \(long \ long\) 会 \(\text{MLE}\),要中途计算时用 \(long \ long\) 的临时变量。

Code
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string>

using namespace std;

const int N = 505;
const int Mod = 993244853;

int n,m;

char a[N][N];

int dp[N][N][N];
long long ans;

int main() {
    ios::sync_with_stdio(false);
    cin >> n >> m;
    for(int i = 1;i <= n; i++)
        for(int j = 1;j <= m; j++)
            cin >> a[i][j];
    if(a[1][1] == a[n][m])
        dp[1][1][n] = 1;
    else {
        cout << "0";
        return 0;
    }
    for(int i = 1;i <= n; i++) {
        for(int j = 1;j <= m; j++) {
            for(int s = n;s >= 1; s--) {
                int t = n + m + 2 - i - j - s;

                if(t < 1 || t > m)
                    continue;
                
                ans = dp[i][j][s];
                if(a[i][j] == a[s][t])
                    ans = ans + dp[i - 1][j][s + 1] + dp[i - 1][j][s] + dp[i][j - 1][s + 1] + dp[i][j - 1][s];
                dp[i][j][s] = ans % Mod;
            }
        }
    }

    ans = 0;

    for(int i = 1;i <= n; i++) {
        for(int j = 1;j <= m; j++) {
            int s,t;

            s = i,t = j;
            if(i + j + s + t == n + m + 2)
                ans += dp[i][j][s];

            s = i + 1,t = j;
            if(i + j + s + t == n + m + 2)
                ans += dp[i][j][s];
            
            s = i,t = j + 1;
            if(i + j + s + t == n + m + 2)    
                ans += dp[i][j][s];

            ans %= Mod;
        }
    }

    cout << ans;
    return 0;
}

B. 快速排序

指针看不懂寄

简单看一下题目里给的快速排序。

\(\text{namespace\_std}\) 的快排

标签:int,long,模拟,ans,include,CSP,dp,回文
From: https://www.cnblogs.com/baijian0212/p/csp-3.html

相关文章

  • [爬虫]2.2.1 使用Selenium库模拟浏览器操作
    Selenium是一个非常强大的工具,用于自动化Web浏览器的操作。它可以模拟真实用户的行为,如点击按钮,填写表单,滚动页面等。由于Selenium可以直接与浏览器交互,所以它可以处理那些需要JavaScript运行的动态网页。安装Selenium首先,我们需要安装Selenium库。你可以使用pip命令来安装:pip......
  • 模拟ArrayList(顺序表)的底层实现
    模拟ArrayLIst的底层实现packagecom.tedu.api04.list;importjava.util.Objects;/***@authorLIGENSEN*Date:2023/7/2011:35*/publicclassArrayListDemo{publicstaticvoidmain(String[]args){ArrList<String>list=newArrList<>......
  • 2023 暑假集训模拟赛题解
    目录CSP模拟1CSP模拟2FSYOCSP模拟1来自学长的馈赠2.CSP模拟2F考虑\(x\)只能在\(a_1\oplusb_i\)里选,那么分别代入暴力检验即可.时间复杂度\(\tilde\Theta(n^2)\),可以通过.S考虑交换同色的部分一定不优,所以同色字符的相对位置一定是不变的.那么操作序列......
  • nesp华为设备模拟器-->静态路由两个网段互联
    静态路由配置,需求如下,PC2需要访问Server1服务器。 软件安装:我下载的是hwmnqensp.rar这个安装包,他是一个整体,不像官网下载那么多包。分析:这里client终端和server服务器,自行配置ip、掩码和网关,LSW二次交换机无需配置;AR1和AR4为路由器,所以需要配置。基础命令:进入用户视图<......
  • 7824. 【2023.07.20NOI模拟】哈密顿路
    Description大家最喜欢的典中典环节它来了。在图论中,无向图的哈密顿路径是恰好能将图中所有顶点各访问一次的路径。给定一张\(n\)个点的简单无向图。对于每个\(1\leqx,y\leqn(x\neqy)\),你想要知道,是否存在一条以顶点\(x\)为起点,以顶点\(y\)为终点的哈密顿路径......
  • RTL-SDR(RTL-2832)的模拟前端硬件结构分析
    最近在学习各种模拟前端的结构,对SDR设备的前端做了一些研究,故写一篇笔记记录一下各种SDR的前端结构。首先当然是从最简单的RTL-SDR入手。对于没有接触过软件无线电的同学,先来介绍一下RTL-SDR。RTL-SDR是一种非常便宜的接收机,可用作基于计算机的无线电频谱仪,用于接收您所在......
  • CSP模拟1
    又双叒叕考试了反思可以更好的总结所以要写反思目录A.随B.单C.题D.DP搬运工1A.随题解:发现模数很特殊,m很大,n好像没什么用,先考虑部分分,暴力枚举,但是m太大了,这种情况要是直接转移肯定不行,必然是根号或者\(log\),然后就想到倍增,暴力合并块反思:考场上倍增的想法挺好想的的,以前就......
  • IDEA 中 模拟并发的工具类CountDownLatch
    (44条消息)用CountDownLatch最大限度的模拟多线程并发执行案例全案例_countdownlatch模拟高并发_@来杯咖啡的博客-CSDN博客......
  • Visual Components 3D模拟仿真软件 衡祖仿真
    VisualComponents是一款数字规划工具,涵盖营销、规划、到生产的整合平台。无论从制程规划、生产到营销都能够整合在单一平台上作业,有助于内部的技术沟通及外部营销推广。除此之外,VC软件整合了物流及智能机器人模拟功能,帮助企业在研发早期即可进行产能确认,减少不必要的成本支出和......
  • 2023年天津/郑州/深圳CSPM-3中级国标项目管理认证报名
    CSPM-3中级项目管理专业人员评价,是中国标准化协会(全国项目管理标准化技术委员会秘书处),面向社会开展项目管理专业人员能力的等级证书。旨在构建多层次从业人员培养培训体系,建立健全人才职业能力评价和激励机制的要求,培养我国项目管理领域复合型人才。  【证书含金量】 ·竞聘优先......