#include<bits/stdc++.h>
using namespace std;
#define ll long long ll ans[],a,b,m; /* b=2^(n-2)a + 2^(n-3)r2 + 2^(n-4)r3 + ... + rn-1 + rn
  可以推出这么个公式,然后枚举n(2-50)即可
  从r2开始贪心求最大的r2,然后后面的ri都可以依次确定下来
*/
int solve(ll a,ll b,ll m,ll n){//长度为n是否可行
ans[]=a;
for(int i=;i<n-;i++){
a<<=;
if(a>b)return ;
}
b-=a;
ll p=(ll)<<(n-);
if(b<p || b>m*p || b/p>m)return ;
b-=p;
for(int i=;i<n;i++){
ll x=b>>(n-i-);
x=min(x,m-);
ans[i]=x+;
b-=x<<(n-i-);
}
if(b< || b>m-)return ; ans[n]=b+;
ll sum=ans[];
for(int i=;i<=n;i++)
ans[i]+=sum,sum+=ans[i];
cout<<n<<" ";
for(int i=;i<=n;i++)
cout<<ans[i]<<" ";
puts("");
return ;
} int main(){
int q;cin>>q;
while(q--){
memset(ans,,sizeof ans);
cin>>a>>b>>m;
if(a==b){
cout<<"1 "<<a<<endl;
continue;
}
int flag=;
for(int i=;i<=;i++){
if(solve(a,b,m,i)){
flag=;
break;
}
}
if(!flag)puts("-1");
}
}

最新文章

  1. Maven与Ant比较
  2. C#事务
  3. Python -- 数据加载、存储与文件格式
  4. 【转】SVN库的迁移
  5. VS2008中调试dll
  6. WordPress自定义文章页面模板
  7. java8新语法
  8. Hadoop之Hive UDAF TopN函数实现
  9. PHP中正则替换函数preg_replace用法笔记
  10. Oracle数据库作业-3 查询
  11. Parallel WebDriver executions using TestNG
  12. NodeJs之crypto
  13. Libevent源码分析 (1) hello-world
  14. React原理探索- @providesModule 模块系统
  15. Java编程语言下Selenium 对于下拉框,单选,多选等选择器的操作
  16. ie8兼容性总结
  17. java.util.regex包下的Pattern类和Matcher类的使用总结
  18. hdu-4856 Tunnels 状压DP
  19. Chrome 屏蔽广告
  20. 20165205 2017-2018-2 《Java程序设计》实验三 敏捷开发与XP实践

热门文章

  1. 编译Solr4.72 源码没有成功
  2. 初探.Net Core API 网关Ocelot(一)
  3. 如何通过SVN管理好代码
  4. 《数据结构与算法分析——C语言描述》ADT实现(NO.02) : 队列(Queue)
  5. drools决策表的使用
  6. pandas中axis的含义
  7. datetime模块练习
  8. csps模拟87888990部分题解
  9. 0916CSP-S模拟测试赛后总结
  10. 使用java Graphics 绘图工具生成顺丰快递电子面单