给出数 n ,数组 a 为 {1,2,3,……n},最多有 n+5 次机会,将任意两个不相等的数做  ceil(x/y) 运算,使得最后的数组 a 只有一个 2,其余全为 1,给出运算次数具体的运算步骤

构造类型的题目,要找到其中的规律,

  • 对于大多数的数,  最大数/x,可以将 x 置为 1,但是要确保某些数将最大数变为 1
  • 我们要使得最大数 maxx 变为 1,两遍 maxx/ceil(sqrt(maxx)),可以把 maxx 变为 1,这样ceil(sqrt(n)) 也变为了最大值,重复执行即可

比赛差 3 分钟,跑完样例后一边 AC。

const int N=2e5+5;int i,j,k;int n,m;int a[N];  int main()
{//IOS;rush(){cin>>n;for(int i=1;i<=n;i++) a[i]=0;m=n;vector<pii> ans;vector<int> v;v.pb(n);while(m!=2){m=ceil(sqrt(m*1.0));a[m]=1;v.pb(m);}for(int i=n-1;i>=2;i--){if(a[i]==0) ans.pb(mp(i,n));//if(a[i]==0) cout<<i<<" "<<n<<endl;}for(int i=0;i<v.size()-1;i++){ans.pb(mp(v[i],v[i+1]));ans.pb(mp(v[i],v[i+1]));//cout<<v[i]<<" "<<v[i+1]<<endl;//cout<<v[i]<<" "<<v[i+1]<<endl;}cout<<ans.size()<<endl;for(int i=0;i<ans.size();i++){cout<<ans[i].fr<<" "<<ans[i].sc<<endl;}}return 0;
}

Educational Codeforces Round 101 (Rated for Div. 2) D. Ceil Divisions(思维)相关推荐

  1. Educational Codeforces Round 101 (Rated for Div. 2) D. Ceil Divisions 思维 + 根号数

    传送门 题意: 给一个数组ai=ia_i=iai​=i,每次可以进行操作ax=⌈axay⌉a_x=\left \lceil \frac{a_x}{a_y} \right \rceilax​=⌈ay​a ...

  2. Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest 思维 + 差分

    传送门 文章目录 题意: 思路: 题意: 给你三个长度分别为k1,k2,k3k1,k2,k3k1,k2,k3的数组a,b,ca,b,ca,b,c,其中k1+k2+k3=nk1+k2+k3=nk1+k2 ...

  3. Educational Codeforces Round 101 (Rated for Div. 2) C. Building a Fence 思维取范围

    传送门 题意: 思路: 刚看到这个题其实是没什么思路,想过从前往后推或者从后往前推,但是都不是很可行.因为两边都有一个固定的挡板挡住,我们可以根据其中的一个算出来每个位置高度的范围,让后检查一下范围是 ...

  4. Educational Codeforces Round 101 (Rated for Div. 2) F. Power Sockets 哈希 + 乱搞

    传送门 题意: 给一个二进制串aaa,让后定义两个串相似为有至少一个相同位置相等.现在让你找一个字典序最小的长度为kkk的串使其与aaa中每个长度为kkk的字串相似. 思路: 首先我们知道所有可能的串 ...

  5. Educational Codeforces Round 80 (Rated for Div. 2) E. Messenger Simulator 思维 + 树状数组

    传送门 文章目录 题意: 思路: 题意: 给你nnn个人,一开始位置分别为1,2,...,n1,2,...,n1,2,...,n,让后mmm个操作,每次都将某个人移动到最前面,其他人依次顺延,求每个人 ...

  6. Educational Codeforces Round 88 (Rated for Div. 2) C. Mixing Water (思维,数学)

    题目链接 题意: 给你一杯热水和一杯冷水,问你最少用几杯水,使得混合后的温度与给定的t温度最相近. (这里至少要用一杯水,并且,交替使用,比如:第一杯只能用热水,第二杯只能用冷水,第三杯只能用热水依次 ...

  7. Educational Codeforces Round 113 (Rated for Div. 2) D. Inconvenient Pairs 思维

    题目大意 给你n条竖直线 m条水平线 k个点 这些点一定在刚才给出的线上 问你有多少个点对 满足之间的距离大于 曼哈顿距离 题目思路 当点在竖直线和水平线的交汇处时 这个点与其他任何点的距离一定等于曼 ...

  8. Educational Codeforces Round 126 (Rated for Div. 2)(A-E)

    A-Array Balancing 题意:给定两个数组a,b,a数组第i个数可以和b数组的第i个数交换,最终求 a1−a2|+|a2−a3|+⋯+|an−1−an||a1−a2|+|a2−a3|+⋯+ ...

  9. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

最新文章

  1. 启用关闭数据库归档(ARCHIVELOG)模式
  2. c语言最大公约数和最小公倍数_五年级数学最大公因数最小公倍数 练习
  3. Spring整合JDBC开发
  4. MySQL从零到一解读增量同步数据到elasticsearch canal adapter方式(binlog)实现
  5. win10+Xming+Xshell显示远程linux服务器的图形程序窗口
  6. Android BroadcastReceiver(一)
  7. 论文笔记_S2D.21_2014-CVPR_单张图像的离散-连续深度估计
  8. 编译问题处理:undefined symbol: OPENSSL_init_crypto
  9. linux调度器(五)——进程管理与CFS
  10. oracle表转为分区表,Oracle 在线重定义(将普通堆表转换成分区表)
  11. 热门软件看点:哇嘎和它的对手们
  12. 使用JMeter进行接口压力测试
  13. 数据库建模工具ER Studio 8 安装破解总结
  14. 数据分析师面试题攻略
  15. React Native入门——布局实践:开发京东客户端首页
  16. 共享手机 馅饼还是陷阱
  17. 充分利用居室空间 让阳台尽显万种风情
  18. gred-cam 的tensorflow实现 热力图
  19. 移民找老张解析:美国绿卡与美国公民身份的区别
  20. 面向过程、面向对象 的模型和方法

热门文章

  1. 5000¥笔记本...
  2. 电脑基本故障与解决方案
  3. [UBUNTU]挖矿病毒处理
  4. 备忘录html源码,HTML5备忘录
  5. 联想微型计算机机箱拆解,拆解:布局严谨的Acer C630_联想ThinkCentre台式电脑_台式电脑评测-中关村在线...
  6. 截图工具:红晴蜒抓图精灵
  7. JsonMap对象的获取与前台浏览器报错Uncaught TypeError: Cannot read property ‘map‘ of undefined
  8. 封闭了一个多月,终于完成了 数码杂志网 站内测版!
  9. 简单五步:利用Gitstats给代码仓库做一次体检
  10. 易语言给软件添加群验证视频教程+附完整模块