济南学习D2T1__折纸带


【问题描述】
一张长度为n的纸带,我们可以从左至右编号为0 −n(纸带最左端标号为
0) 。现在有m次操作,每次将纸带沿着某个位置进行折叠,问所有操作之后纸带
的长度是多少。
【输入格式】
第一行两个数字n,m如题意所述。
接下来一行m个整数代表每次折叠的位置。
【输出格式】
一行一个整数代表答案。
【样例输入】
5 2
3 5
【样例输出】
2
【样例解释】
树上有只鸟。
【数据规模与约定】
60%的数据,n,m ≤ 3000。
对于100%的数据,n≤ 10 18 ,m ≤ 3000。

_____________________________________________________________________________

题意很简单,主要就是更改以后折的点,60分可以用并查集维护,100更简单,读入所有的折点,暴力更改m2.

做题中出了点小问题,CENA测试时,我用的lld,忘了这个版本用I64d,笨啊!!!!!!!!!

_____________________________________________________________________________

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cstring>
 4 
 5 using namespace std;
 6 long long n,m;
 7 long long sz[3010];
 8 long long l,r;
 9 int main()
10 {
11     freopen("he.in","r",stdin);
12     freopen("he.out","w",stdout);
13     scanf("%I64d%I64d",&n,&m);
14     l=0;r=n;
15     for(long long i=0;i<m;i++)scanf("%I64d",sz+i);
16     for(long long i=0;i<m;i++)
17     {
18         long long dn=sz[i];
19         if(r-dn>dn-l)
20         {
21             for(long long j=i+1;j<m;j++)
22             {
23                 if(sz[j]>=l&&sz[j]<dn)
24                 {
25                     sz[j]=dn-sz[j]+dn;
26                 }
27             }
28             l=dn;
29         }
30         else
31         {
32             for(long long j=i+1;j<m;j++)
33             {
34                 if(sz[j]>dn&&sz[j]<=r)
35                 {
36                     sz[j]=dn-sz[j]+dn;
37                 }
38             }
39             r=dn;
40         }
41     }
42     cout<<r-l<<endl;
43     fclose(stdin);
44     fclose(stdout);
45     return 0;
46 }

 

转载于:https://www.cnblogs.com/gryzy/p/6068551.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于初学者来说,anaconda是科学计算的一套工具集,其中的conda是一个包管理器,能够轻松地安装、更新和卸载众多的Python软件包。 安装d2lzh_pytorch前,需要先安装anaconda和pytorch。关于pytorch的安装,请参考pytorch官方文档进行安装。 接下来,我们来具体讲解如何在anaconda中安装d2lzh_pytorch: 1. 打开anaconda prompt,进入conda环境 2. 输入以下指令,创建新环境并安装ipykernel: conda create -n d2lzh_pytorch conda activate d2lzh_pytorch conda install ipykernel 3. 在新环境中安装d2lzh_pytorch: pip install d2lzh_pytorch 4. 在jupyter notebook中,将内核设置为创建的新环境: python -m ipykernel install --user --name d2lzh_pytorch --display-name "Python (d2lzh_pytorch)" 5. 打开jupyter notebook,输入以下代码进行测试: import torch import d2lzh_pytorch from d2lzh_pytorch import * x = torch.ones(3, 4) print(x) 如果成功打印出tensor([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]]),则表明d2lzh_pytorch已经成功安装。 值得注意的是,此方法安装的是d2lzh_pytorch的CPU版本。如果需要使用GPU版本,请在安装pytorch时安装相应的GPU版本,并在安装d2lzh_pytorch时加上gpu的标记: pip install d2lzh_pytorch-gpu 至此,d2lzh_pytorch的安装就全部完成了。 ### 回答2: anaconda是一款Python的包管理工具,可以帮助用户方便地安装和管理Python的各种包和环境。而d2lzh_pytorch是一本深度学习的教程,其中使用了PyTorch框架。在anaconda中安装d2lzh_pytorch需要经过以下步骤: 1. 安装anaconda 如果还没有安装anaconda,可以先从官网下载安装包进行安装。安装后可以在命令行窗口中输入conda --version来确认是否安装成功。 2. 创建conda环境 可以考虑创建一个专门用于d2lzh_pytorch的conda环境,可以避免包之间的依赖关系混乱。可以在命令行窗口中输入以下命令来创建: ```conda create -n d2lzh_pytorch python=3.6``` 其中d2lzh_pytorch是环境的名字,python=3.6指定了Python的版本。 3. 激活conda环境 创建好环境后,需要激活该环境才能进行后续操作。可以在命令行窗口中输入以下命令来激活环境: ```conda activate d2lzh_pytorch``` 其中d2lzh_pytorch是刚才创建的环境名字。 4. 安装PyTorch 在激活conda环境后,就可以安装PyTorch了。可以在命令行窗口中输入以下命令来安装: ```conda install pytorch torchvision torchaudio cpuonly -c pytorch``` 其中cpuonly表示只安装CPU版本,如果需要安装GPU版,可以去PyTorch官网查看对应的安装命令。 5. 安装d2lzh_pytorch 在安装好PyTorch后,就可以安装d2lzh_pytorch了。可以在命令行窗口中输入以下命令来安装: ```pip install d2lzh_pytorch``` 6. 验证安装结果 安装完成后,可以尝试导入d2lzh_pytorch模块,看能否成功。可以在Python交互界面或者jupyter notebook中输入以下代码进行测试: ``` import d2lzh_pytorch as d2l d2l.set_figsize() ``` 如果代码能够成功运行,说明安装成功。 ### 回答3: anaconda是一个非常流行的Python包管理器和环境管理器,它允许用户轻松地安装、配置和管理Python开发所需的各种包和库。d2lzh_pytorch是一种基于PyTorch框架的深度学习教程和代码库,可以帮助用户快速入门深度学习领域。 要安装d2lzh_pytorch,首先需要在本地机器上安装Anaconda环境。可以访问Anaconda官方网站并按照其指示进行安装。一旦安装完成,就可以打开Anaconda Prompt或Anaconda Navigator并在命令行中输入以下命令来安装d2lzh_pytorch: ``` conda install pytorch torchvision matplotlib pip install d2lzh_pytorch ``` 这两个命令将分别安装PyTorch、Matplotlib以及d2lzh_pytorch。在安装后,可以打开Python编辑器并导入d2lzh_pytorch来编写深度学习代码和应用。 需要注意的是,由于安装d2lzh_pytorch时需要下载一些大型依赖项,因此可能需要耗费一些时间和带宽。请确保网络连接稳定,并耐心等待安装完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值