题面:

题目链接

题意:

一排 n 个位置,部分位置上有一定数量的砖头,每次操作可选择一对 i 和 j,将 i 处的砖头搬一块到 j 处,其中,要求 i < j 且区间 [ i+1 , j-1 ] 的位置上都得有砖头。问最少需要多少次操作才能将所有砖头都堆叠在 n 处(即最后一个位置上)。

题解:

一步步去模拟明显不行,基于贪心的思想,如果对于每一块砖头都能做到一次操作就搬到 n 处,自然是最好。但前提是某一块砖头被搬起的地方 i 到 n 之间的所有位置上都得有砖头。所以对于本来就有砖头的位置,我们无需考虑(在我们架设好一路都有砖头的情况下,有几块砖头对应得花几次操作),而本来就没有砖头的位置,我们都得花一次操作给它添加一个砖头。最终,问题就转化为:从最开始有砖头的位置往后扫,累加每次给空位置添加一块新砖头的操作次数和原本就需要搬的砖头数。

代码:

#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
int T,n;
signed main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);cin>>T;while(T--){cin>>n;vector<int> a(n+1);for(int i=1;i<=n;i++) cin>>a[i];int p=1,ans=0;while(p<=n&&!a[p]) p++;//找初始有砖头的位置 for(int i=p;i<n;i++){ans+=a[i];if(!a[i]) ans++;//添加新砖头 }   cout<<ans<<endl;}return 0;
} 

1705B Mark the Dust Sweeper相关推荐

  1. B. Mark the Dust Sweeper(思维)

    题目 题意 给定n个数,可以执行以下操作 选择下标i<j,且a[i],a[i+1],-a[j-1]都大于0:令a[i]=a[i]-1,a[j]=a[j]+1. 问最少需要多少次上述操作,才能将a ...

  2. codeforce:B. Mark the Dust Sweeper【补0 + 移动】

    分析 去掉无用的前缀0 然后,中间的0需要一个个补(作为传递) 补一个0需要额外多一下 然后补充完中间的0后就可以进行有效的转移了 所以就是a的求和然后0的话加一即可 ac code import s ...

  3. # CF #807 Div.2(A - D)

    A - Mark the Photographer Description: ​ 给定2n个数和k,请问是否存在n对(i, j) abs(ai - aj) >= k Solution: ​ 先排 ...

  4. Codeforces Round #807 (Div. 2)(A-D)

    Dashboard - Codeforces Round #807 (Div. 2) - CodeforcesCodeforces. Programming competitions and cont ...

  5. Codeforces Round #807 (Div. 2) A-C题解

    Codeforces Round #807 (Div. 2) A.B.C题题解 A - Mark the Photographer 题意:马克要给2n个人照相,分两排,一排站n人,给出每个人的身高,要 ...

  6. Codeforces Round #807 (Div. 2) A-D

    Codeforces Round #807 (Div. 2) A. Mark the Photographer 给定整数n,数组长度2*n,问能不能拆成两个长度为n的数组,两个数组的第i项有a[i]& ...

  7. Codeforces Round #807 (Div. 2)A~E个人题解

    Dashboard - Codeforces Round #807 (Div. 2) - Codeforces A. Mark the Photographer 题意: 有个人,每个人的身高设为,现在 ...

  8. Codeforces Round #807 (Div. 2) A - D

    Codeforces Round #807 (Div. 2) 提交情况 参考 Codeforces Round #807 (Div. 2) A~E A. Mark the Photographer 标 ...

  9. 【CF 比赛记录】Roye_ack的艰难上分日常(35)

    目录 #792 Div1+Div2 AC  A1. Digit Minimization #Edu 129 Div2 !A2. Game with Cards #795 Div2 AC  A3. Be ...

最新文章

  1. 迁移到MySQL的业务架构演进实战
  2. Nginx的proxy_cache缓存功能
  3. restful,RESTful API 设计,GET/PUT/DELETE/POST
  4. 【hta版】获取AppStore上架后的应用版本号
  5. 2006年软件500强
  6. WPF自定义命令(转)
  7. 同步本地远程分支 git remote prune origin
  8. LeetCode 808. 分汤(动态规划)
  9. mysql 线性表_线性表之顺序存储,基本操作
  10. JavaScript实现常见的数据结构
  11. java中的链接之其他窗体_两个窗体之间的链接
  12. 快速学会php视频,PHP视频从入门到精通---适合PHP初学者
  13. iOS开发之各种动画各种页面切面效果
  14. 调用腾讯优图开放平台进行人脸识别-Java调用API实现
  15. 解决jupyter notebook输出显示不完整问题
  16. php 5.4连接mysql_MySQL数据库之PHP5.4中mysql连接
  17. R 学习 - 火山图
  18. 信号处理中简单实用的方法——对信号进行平滑处理
  19. springboot校园疫情智慧防控微信小程序毕业设计源码011133
  20. fop生成pdf的中文乱码问题

热门文章

  1. 京东金融,你到底是坏,还是码农裁多了??
  2. CNC加工过程常见问题点及改善方法
  3. 学号信息提取(PTA厦大慕课)
  4. Truncate的使用详解
  5. android系统更新视频播放器,基于的Android系统地视频播放器.doc
  6. linux 服务器运行慢,Linux运行慢?找出原因
  7. 【智驾深谈】特斯拉死亡事故官方洗白,业界被判死缓(万字报告)
  8. CSS设置溢出文字显示省略号
  9. LaTex让目录中的所有条目后面都有省略号
  10. 在进程中执行cmd.exe指令关闭其它进程的方式[c#]