数的和与积

https://ac.nowcoder.com/acm/contest/34330/C

思路:

2和4是不可以的,除了3意外其他的都可以用三项解决,其中一项为1,剩余两项分别设为x,y.  sum=x+y+1+x*y。可以化简成sum=(x+1)(y+1)。

前n项的和为n(n+1)/2,可以等位置替换一下,其中奇偶是不同的,因为当奇数除2时会又偏差,所以要把他们都转化为偶数。

奇数:sum=((n+1)/2-1+1)*(n-1+1).

偶数:sum=(n/2-1+1)*(n+1).

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
const int N=5e5+5;
ll vis[N],a[N],ans,temp[N];
priority_queue<ll,vector<ll>,greater<ll>> q;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
ll t;cin>>t;
while(t--){
ll n;cin>>n;
if(n==2||n==4) cout<<"-1"<<endl;
else if(n==3) cout<<"1"<<endl<<"3"<<endl;
else if(n&1) cout<<3<<endl<<1<<" "<<(n-1)/2<<" "<<(n-1)<<endl;
else cout<<3<<endl<<1<<" "<<(n-2)/2<<" "<<n<<endl;
}
}

最新文章

  1. C语言复杂声明
  2. 使用Dapper时,如何将MySqlParameters[] 变成Dapper.DynamicParameters动态对象
  3. JS 清除字符串数组中,重复元素
  4. Linux下Keepalived 安装与配置
  5. poj3349(哈希+链地址法)
  6. 关于jquery选择器中:first和:first-child和:first-of-type的区别及:nth-child()和:nth-of-type()的区别
  7. 【译】Java中的字符串字面量
  8. 【极简版】SpringBoot+SpringData JPA 管理系统
  9. 播放器更改语言归属地后Cnario player软件无法启动的问题
  10. netty解码器详解(小白也能看懂!)
  11. kettle使用笔记1--基本安装和使用
  12. lucene简单搜索demo
  13. hive 字段名称显示
  14. 下载以及安装VMware Player Pro 64位
  15. springmvc 笔记一
  16. css之3D变换
  17. vue $options 获取自定义属性
  18. springmvc el表达式取值顺序问题
  19. android破解
  20. 解决WCF跨机器调用时发生“调用方未由服务进行身份验证”的错误

热门文章

  1. shell 问题记录
  2. sublime_text 3安装Emmet时出现PyV8警告
  3. Linux shell 2&gt;&amp;1的意思
  4. Android multiple back stacks导航的几种实现
  5. java程序使用ssl证书连接mysql
  6. Linux编辑shell脚本快速启动jar包
  7. 浅议.NET遗留应用改造
  8. PTA(BasicLevel)-1016 部分A+B
  9. Map接口中的常用方法和Map集合遍历键找值方式
  10. 【ASP.NET Core】自定义的配置源