cf 1077c 思维 排序
时间:2019-02-17
本文章向大家介绍cf 1077c 思维 排序,主要包括cf 1077c 思维 排序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题意:
由正整数ai组成的长度为n的序列。假如去掉第j个数后,其余的数满足其中一个数等于其他数的和,求所有符合题意的j。
1 <= n <= 2e5,1 <= ai <= 1e6。
题解:
1.一个数等于其他数的和 等价于 这个序列最大数等于其他数的和。
2.结构体存储序列的数字和每个数字的序号,先将序列从大到小排序,假如去掉的数是第一个数的话,那么剩余序列的最大数就是新序列的第二个数,否则就是第一个数。
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<vector>
#include<stack>
#define N 200005
#define mod 1000000007
using namespace std ;
struct node
{
int num ;
int id ;
} a[N] ;
bool cmp(node a , node b)
{
return a.num > b.num ;
}
int main()
{
int i , j , cnt = 0 ;
int n , b[N] ;
int max1 ;
long long sum = 0 , temp ;
scanf("%d" , &n) ;
for(i = 1 ; i <= n ; i ++)
{
scanf("%d" , &a[i]) ;
a[i].id = i ;
sum += a[i].num ;
}
sort(a + 1 , a + n + 1 , cmp) ;
for(i = 1 ; i <= n ; i ++)
{
temp = sum ;
temp -= a[i].num ;
if(i == 1)
max1 = a[2].num ;
else
max1 = a[1].num ;
if(max1 * 2 == temp)
b[++cnt] = a[i].id ;
}
printf("%d\n" , cnt) ;
for(i = 1 ; i <= cnt ; i ++)
printf("%d " , b[i]) ;
}
- 继小程序之后“小游戏”也来了,微信为此再次开启神秘入口
- (Head First 设计模式)学习笔记(3) --装饰者模式(StarBuzz咖啡店实例)
- 我的Js代码-按钮按下时判断是否选择了最后一行,给出提示
- (Head First 设计模式)学习笔记(2) --观察者模式(气象站实例)
- Spring Boot使用HandlerInterceptorAdapter和WebMvcConfigurerAdapter实现原始的登录验证
- 一条视频获C+融资 两个域名神助攻
- ExtJs与WCF交互:生成树
- JavaScript大略
- 加点的心得
- Markdown
- 介绍linux下利用编译bash设置root账号共用的权限审计设置
- 分享一例脚本发版和tomcat重启脚本
- 2018年小程序的红利趋势预测,或许你将成为下个富翁
- 分布式监控系统Zabbix-3.0.3-完整安装记录(5)-邮件报警部署
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 当年偶然发现的 Java Bug(JDK 9及之前仍未修复)
- 干货 | 45张图庖丁解牛18种Queue,你知道几种?
- Linux/Unix 效率工具:快速路径切换 z 命令
- Salesforce LWC学习(二十四) Array.sort 浅谈
- 《闲扯Redis十一》Redis 有序集合对象底层实现
- MySQL参数是啥,你知道吗?
- 使用v-model对父子组件进行双向绑定
- Astar Algorithm
- 树状数组解析
- Cypress系列(44)- 命令行运行 Cypress
- Cypress系列(45)- cypress-skip-and-only-ui 插件详解
- 多线程基础(五):java对象的MarkWord及synchronized锁升级过程
- 【每日一题】45. Jump Game II
- 「Elasticsearch + Lucene」搜索引擎的架构、倒排索引和搜索过程
- 查看 MAC JDK默认安装路径 JAVA路径 的shell 命令