当前位置: 首页 > news >正文

xtuoj 两个数

题目

思路

从数组中取出两个元素,将其拆分成若干个1,然后加到剩余元素里面,使得剩余的 n-2 个元素值都相等,求这样的取法有多少种。

一,由于取出来的元素都加到剩余元素里面了,所以元素的总和保持不变。

二,剩余n-2个元素的值都相等,且总和为S,所以剩余每个元素应该最后是S/(n-2)。

三,由于元素拆分为若干个1,所以如果剩余每个元素最后应该是整数,那么S%(n-2)==0,如果不满足,则不存在这样的取法。

四,由于只能加不能减,所以我们必须要把 >T 的取出来,要保证剩下的元素都 <= T。

五,由于只能取两个元素,所以如果 >T 的个数 >2,则不存在这样的取法;如果 >T 的元素是两个,那么把这两个取出来即可,就这一种取法;如果 >T 的元素只有 1 个,那么我们把这个元素取出来,然后剩余元素随便取出一个即可,就是n-1种取法,因为取出这个 >T 的元素后,剩余部分都 <= T,且总和不变,剩余元素个数为 n-2 个,所以都可以通过加法实现让其等于 T;如果没有 >T 的元素,那么直接随便选两个即可,就是\binom{2}{n}

代码

#include<stdio.h>
#define ll long long
#define N 100005int main(){ll n,S=0,cnt=0,ans;scanf("%lld",&n);ll a[N];for(int i=0;i<n;i++){scanf("%lld",&a[i]);S+=a[i];}ll T=S/(n-2);for(int i=0;i<n;i++) if(a[i]>T) cnt++;if(S%(n-2)!=0) ans=0;else{if(cnt>2) ans=0;else if(cnt==2) ans=1;else if(cnt==1) ans=n-1;else if(cnt==0) ans=n*(n-1)/2;}printf("%lld\n",ans);return 0;
}
http://www.dtcms.com/a/512586.html

相关文章:

  • Android Studio新手开发第二十六天
  • 中国平安网站建设成都网站建设易维达好
  • 继保:对于线路两侧的电流互感器型号系数选取
  • Redis分布式集群:从分区算法到扩容实战
  • AI大模型:(二)1.6 DeepSeek-OCR部署尝鲜
  • 在昇腾NPU上跑Llama大模型:从零开始的真实测试之旅
  • 直播类网站开发wordpress 图片自动分页
  • JADX下载和安装图解教程(附安装包)
  • 矽塔 SA8203 2.5A可调过流保护 输入耐压36V 过压/过流保护芯片
  • 网站开发饼图样式wordpress 如何登陆地址
  • 工业相机 “即插即用” vs 采集卡依赖
  • wordpress手机视频播放器免费seo营销软件
  • 【系统分析师】预测试卷一:论文及写作要点(包括对应素材和论文案例)
  • 私有云不私有?Nextcloud+cpolar让文件随身走
  • 诺基亚官方网站wordpress站点进入时弹窗
  • 网站建设运营合作合同外链代发工具
  • 重庆江北网站建设18款app软件免费下载百度
  • wordpress 多语言 站点动态ip做网站影响seo吗
  • 河南建设网站官网怎么用微信官方网站做二维码
  • JSTS ,JSXTSX的区别与联系(前端react第一篇)
  • 电子商务网站建设以什么为核心公司网站能自己做吗
  • 股指期货与股票的区别是什么?
  • 天津网站建设学习温州建站模板搭建
  • 兰州网站优化服务个性化网站建设费用
  • Nginx负载均衡:高性能流量调度指南
  • [人工智能-大模型-35]:模型层技术 - Transformer神经网络结构与其他类型的神经网络结构(CNN、RNN)的对比
  • Blender微细节纹理材质模型资产包 Micro-Details Premium Asset Pack
  • 解释Linux 系统中ls -l命令的输出
  • 重庆丰都建设局网站中国建设银行网站企业
  • 模拟到真实:使用OpenCV识别Xycar自动驾驶中的车道线和交通灯