ARC102D All Your Paths are Different Lengths
题目大意
让你构造一个有向图,使得从1到n有L条不同路径且长度分别是0~L-1。
分析
我们不难想到每一对相邻点之间连一条权值为0的边,之后二进制分解,将每一对点之间连一个权值为2^i的边,但是我们会发现这样在一些情况下还会剩下一些值不能覆盖。如果将剩下的值一一连边肯定会炸。于是我们还是利用二进制的思想,从最后一个点开始向前枚举,如果在这个点加上一条权值为之前不能构成的值中的最小值的边构成的数不会越界则加上这一条边。描述比较粗略,详见代码。
代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<ctime>
#include<vector>
#include<set>
#include<map>
#include<stack>
using namespace std;
const int LOG = ;
int ans[],ans2[],ans3[];
int main(){
int n,m=,l,i,j,k;
scanf("%d",&l);
for(i=;i<=LOG;i++)
if((<<i)>l){
n=i;
break;
}
for(i=;i<n;i++){
ans[++m]=i;
ans2[m]=i+;
ans3[m]=;
ans[++m]=i;
ans2[m]=i+;
ans3[m]=<<(i-);
}
int t=<<(n-);
l-=t;
for(i=n-;i>;i--)
if((<<(i-))<=l){
ans[++m]=i;
ans2[m]=n;
ans3[m]=t;
t+=<<(i-);
l-=<<(i-);
}
printf("%d %d\n",n,m);
for(i=;i<=m;i++)
printf("%d %d %d\n",ans[i],ans2[i],ans3[i]);
return ;
}
ARC102D All Your Paths are Different Lengths的更多相关文章
- AtCoder Regular Contest 102 D - All Your Paths are Different Lengths
D - All Your Paths are Different Lengths 思路: 二进制构造 首先找到最大的t,使得2^t <= l 然后我们就能构造一种方法使得正好存在 0 到 2^t ...
- 【atcoder】All Your Paths are Different Lengths[arc102D](乱搞)
题目传送门:https://arc102.contest.atcoder.jp/tasks/arc102_b 这道题有点毒瘤啊,罚时上天.. 显然若$ l=2^n $那么就可以直接二进制拆分,但是如果 ...
- AtCoder Regular Contest 102 (ARC102) D All Your Paths are Different Lengths 构造
原文链接https://www.cnblogs.com/zhouzhendong/p/ARC102D.html 题目传送门 - ARC102D 题意 给定 $L$,请你构造一个节点个数为 $n$ ,边 ...
- [Arc102B]All Your Paths are Different Lengths_构造_二进制拆分
All Your Paths are Different Lengths 题目链接:https://atcoder.jp/contests/arc102/tasks/arc102_b 题解: 构造题有 ...
- Optimal Milking 分类: 图论 POJ 最短路 查找 2015-08-10 10:38 3人阅读 评论(0) 收藏
Optimal Milking Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 13968 Accepted: 5044 Case ...
- POJ2112 Optimal Milking (网络流)(Dinic)
Optimal Milking Time Limit: 2000MS Memory Limit: 30000K T ...
- poj 2112 Optimal Milking (二分图匹配的多重匹配)
Description FJ has moved his K ( <= K <= ) milking machines <= C <= ) cows. A ..K; the c ...
- POJ 2112 Optimal Milking (二分+最短路径+网络流)
POJ 2112 Optimal Milking (二分+最短路径+网络流) Optimal Milking Time Limit: 2000MS Memory Limit: 30000K To ...
- POJ2112_Optimal Milking(网洛流最大流Dinic+最短路Flody+二分)
解题报告 农场有k个挤奶机和c头牛,每头牛到每一台挤奶机距离不一样,每台挤奶机每天最多挤m头牛的奶. 寻找一个方案,安排每头牛到某一挤奶机挤奶,使得c头牛须要走的全部路程中的最大路程的最小值. 要使每 ...
随机推荐
- matrix-gui-2.0 将javascript文件夹改成js文件夹
/******************************************************************************** * matrix-gui-2.0 将 ...
- centos 下配置oracle11gR2开机自启
这里使用的环境是 CentOS 6.6 ,并且已经装好了oracle11gR2 oracle启动分为两个步骤: 1.启动监听 2.启动服务 1.root 用户下修改ORATAB(将N该为Y): [ro ...
- Python 2.7_爬取CSDN单页面利用正则提取博客文章及url_20170114
年前有点忙,没来的及更博,最近看爬虫正则的部分 巩固下 1.爬取的单页面:http://blog.csdn.net/column/details/why-bug.html 2.过程 解析url获得网站 ...
- 数字排列(n,m)(搜索与回溯)
题目描述: 设有n个整数的集合{1,2,…,n},从中取出任意r个数进行排列(r<n),试列出所有的排列. 代码如下: #include<iostream>#include<c ...
- php写入数据到mysql数据库中出现乱码解决方法
乱码情况: 在选择数据库前加入一句代码即可 mysql_query("set names utf8"); 最后效果
- Nginx简介及配置介绍
一.什么是Nginx Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发 ...
- python 编码拓展,小数据池,
编码拓展: 1.在所有类型的编码中,编码的二进制互不识别, 2.在传输的过程中不能是万国码的二进制解码传输, 因此将unicode变为utf - 8或者变成gbk编码尤为重要; 利用encode编码为 ...
- openTSDB+HBase+ZK遇到的坑汇总
1.zookeeper返回的hbase地址是hostname,外网如何访问? 如果需要直接访问zk获取hbase地址进而访问,目前需要本机配置host ip hostname 如果是要长期解决方法, ...
- HTML5通信
跨文档消息传输 HTML5中提供了在网页文档之间互相接收与发送信息的功能.使用这个功能只要获取到网页所在窗口对象的实例,无论是否同源都可以实现跨域通信.经常用于不同frame之间的通信. 当我们想要接 ...
- python风格指南
还在让别人一眼就看出你是一只野生程序猿嘛,快来看看谷歌的python风格指南提升逼格吧! http://zh-google-styleguide.readthedocs.io/en/latest/go ...