ARC102D(构造)

构造一个图,使得\(n \le 20,m\le 60\),边从小的点连向大的点,并且从1到n的所有路径,长度与\([0, l-1]\)构成双射。

用二进制的思想……代码很鬼畜

#include <cstdio>
using namespace std; const int maxn=25;
int l, n, src, dst, m; int main(){
scanf("%d", &l); --l;
for (int i=l+1; i; i>>=1) ++n;
m=n*2-2;
for (int i=21; i>=0; --i) if ((l-(1<<n-1)+1)&(1<<i)) ++m;
printf("%d %d\n", n, m);
src=n; dst=1; int t=1;
for (int i=1; i<n; ++i, t*=2){
printf("%d %d %d\n", i, i+1, t);
printf("%d %d %d\n", i, i+1, 0); }
int nowe=(1<<(n-1)); l=l-nowe;
while (l>=0){
for (t=21; t>=0; --t) if (l-(1<<t)>=-1) break;
printf("%d %d %d\n", t+1, src, nowe);
nowe+=(1<<t); l-=(1<<t);
}
return 0;
}

最新文章

  1. git克隆项目到本地&amp;&amp;全局安装依赖项目&amp;&amp;安装依赖包&amp;&amp;启动服务
  2. Android自定义属性
  3. SQL语句 分页实现
  4. String类型和基本数据类型之间的转换
  5. 51nod 1228 序列求和 ( 1^k+2^k+3^k+...+n^k )
  6. codevs1958 刺激
  7. iwebshop 订单存库修改为下单件库存
  8. javaweb--struts框架--struts.xml
  9. iOS 快递查询
  10. 转!!深入理解 Session 与 Cookie
  11. hash_map vs unordered_map vs map vs unordered_set
  12. sort 使用 tab键 作为 分隔符_人生如梦_百度空间
  13. python enumerate 枚举函数用法
  14. C++模板类与Qt信号槽混用
  15. 阿里云服务器配置免费https服务
  16. otter 数据同步
  17. 你应该知道的最好Webmail邮件客户端,
  18. tmux配置与用法整理
  19. Hadoop学习之路(十六)Hadoop命令hadoop fs -ls详解
  20. CentOS 6.5下安装Oracle 11g(转)

热门文章

  1. java代码List
  2. spring bean管理
  3. vue中父子组件传递信息实现
  4. Vue2.0+Webpack+Element+Axios+vueRouter技术栈使用过程总结
  5. leetcode860
  6. 部署和调优 2.5 tomcat配置和优化
  7. mysql中表触发器的简单使用
  8. Navicat断网时连不上数据库
  9. 用JS,打印99乘法表
  10. CSS布局奇淫巧计之-强大的负边距