魔道研究

本文介绍了一个涉及大量多重集合操作的问题及其解决方案。通过使用Spaly数据结构,能够高效地处理插入操作并计算特定条件下集合中元素的总和。文章提供了完整的代码实现,并详细解释了模拟过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目大意

有3*10^5个多重集合,许多次操作,每次操作往某个集合里插入一个数。对于所有i,把第i个集合里前i大的元素加入集合S中。每次操作后你需要输出集合S中前N大元素的和。

模拟

模拟题意,用数据结构维护即可。
这里使用spaly。

#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
typedef long long ll;
const ll mo=1000000007;
ll flag[10][10]={
    {1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 },
    {1 ,1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 },
    {1 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 },
    {1 ,2 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,0 },
    {1 ,2 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 },
    {1 ,1 ,1 ,0 ,0 ,1 ,0 ,0 ,0 ,0 },
    {1 ,0 ,2 ,0 ,0 ,0 ,1 ,0 ,0 ,0 },
    {1 ,3 ,0 ,2 ,1 ,0 ,0 ,1 ,0 ,0 },
    {1 ,2 ,1 ,1 ,0 ,2 ,0 ,0 ,1 ,0 },
    {1 ,4 ,0 ,4 ,2 ,0 ,0 ,4 ,0 ,1 }
},dt1[10]={12,9,6,6,6,3,0,3,0,0}
 ,dt2[10]={4 ,2,1,1,0,0,0,0,0,0};
ll c[30][30],f[250][250][20];
ll i,j,k,l,r,t,n,m,ans;
int main(){
    freopen("magic.in","r",stdin);freopen("magic.out","w",stdout);
    scanf("%lld%lld",&n,&m);
    f[0][0][0]=1;
    f[0][1][1]=4;f[0][1][2]=4;
    f[0][2][3]=4;f[0][2][4]=2;f[0][2][5]=8;f[0][2][6]=2;
    f[0][3][7]=4;f[0][3][8]=4;
    f[0][4][9]=1;
    c[0][0]=1;
    fo(i,1,14){
        c[i][0]=1;
        fo(j,1,i)
            c[i][j]=(c[i-1][j]+c[i-1][j-1])%mo;
    }
    fo(i,0,n-1)
        fo(j,0,m)
            fo(k,0,9)
                if (f[i][j][k])
                    fo(l,0,9)
                        if (flag[k][l])
                            fo(t,0,dt2[l])
                                if (j+t<=m)
                                    fo(r,0,dt1[l]-2*t)
                                        if (j+t+r<=m){
                                            f[i+1][j+t+r][l]+=f[i][j][k]*flag[k][l]*c[dt2[l]][t]*c[dt1[l]-2*t][r];
                                            f[i+1][j+t+r][l]%=mo;
                                        }
    fo(j,0,9) ans=(ans+f[n][m][j])%mo;
    fo(i,1,m) ans=ans*i%mo;
    printf("%lld\n",ans);
    fclose(stdin);fclose(stdout);
    return 0;
}
### 在 Ubuntu 20.04 上部署与《魔道祖师》相关的应用程序或服务 为了在 Ubuntu 20.04 上成功部署与《魔道祖师》相关的应用程序或服务,可以按照以下方法操作: #### 准备工作 确保已上传 `ubuntu-20.04.2-live-server-amd64.iso` 到源服务器的 `/data` 目录下[^1]。完成操作系统安装后,需验证系统环境并加载必要的网络模块。 对于 Kubernetes (K8S) 的基础配置,在部署前应确认系统的 `br_netfilter` 模块已被加载。如果未加载,则可以通过以下命令实现: ```bash sudo apt-get update && sudo apt-get install -y bridge-utils sudo modprobe br_netfilter lsmod | grep br_netfilter sysctl -a | grep bridge ``` 上述步骤有助于确保容器化环境中桥接网络功能正常运[^2]。 --- #### 安装 Docker K8S 组件 由于许多现代应用依赖于容器技术,因此推荐使用 Docker 来管理镜像服务。以下是具体步骤: 1. **更新包索引** ```bash sudo apt-get update ``` 2. **安装必要工具** ```bash sudo apt-get install -y curl wget git ``` 3. **设置 Docker 软件仓库** 添加官方 GPG 密钥以及稳定版存储库地址: ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 4. **安装 Docker CE** 更新 APT 缓存并安装最新版本的 Docker Engine: ```bash sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io ``` 5. **启动并启用 Docker 服务** 确保 Docker 正常运: ```bash sudo systemctl start docker sudo systemctl enable docker ``` 6. **初始化 kubeadm 集群** 如果计划通过 Kubernetes 运魔道祖师》相关服务,可继续执以下命令来创建单节点集群: ```bash sudo swapoff -a sudo kubeadm init --pod-network-cidr=10.244.0.0/16 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 7. **安装 CNI 插件(Flannel 或 Calico)** 使用 Flannel 设置 Pod 网络插件: ```bash kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` --- #### 构建《魔道祖师》主题的应用程序 假设目标是构建一个基于 Web 的小说阅读平台或者动画播放器,可以选择以下方式之一: ##### 方法一:利用现成开源项目 寻找 GitHub 或其他代码托管平台上是否有类似的开源项目支持《魔道祖师》相关内容展示。下载该项目并通过 Dockerfile 打包为镜像文件。 例如,克隆某个前端框架工程至本地: ```bash git clone https://github.com/example/magical-novel-reader.git cd magical-novel-reader docker build -t mdzs-app . kubectl create deployment mdzs-deployment --image=mdzs-app kubectl expose deployment/mdzs-deployment --type="NodePort" --port=80 ``` ##### 方法二:自定义开发 如果没有合适的模板可用,则可以从零开始设计架构图,编写前后端逻辑代码,并将其封装进容器之中发布出去。 --- #### 测试访问效果 最后一步就是检验整个流程是否顺利完成。打开浏览器输入对应 IP 地址加上分配好的端口号即可查看页面显示情况。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值