科林明伦杯 哈尔滨理工大学第十届程序设计竞赛 (补)
B减成一
利用差分数组,把前后差为正的数都加起来,这里a[0]要设置为1。
#include <iostream>
#define ll long longusing namespace std;int a[100005];int main(){int t;cin>>t;while(t--){int n;cin>>n;a[0] = 1;for(int i = 1; i <= n; i++){cin>>a[i];}ll ans = 0;for(int i = 1; i <= n; i++){if(a[i] > a[i - 1]){ans += a[i] - a[i - 1];}}cout<<ans<<endl;}return 0;
}
这里再晒一下题解给的解释
原文章
减成一
思路:由于每次操作可以将一个区间内的数减一。如下图所示,通过计算出差分数组,操作可以转为先选取一个数减一再选取一个数加一。目标的差分数组也就变成了第一个数为1,其余为0的数组。因此,最快操作方式就是将差分数组第一个数减为1,其余减为0。即操作数为差分数组的正数之和减一。
题解代码,原链接同上
#include<stdio.h>
#define N 100005
long long f[N],a[N];
int main()
{freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);long long t;scanf("%lld",&t);long long num=0;while(t--){long long n;scanf("%lld",&n);num+=n;long long sum=0;for(long long i=0;i<n;i++){scanf("%lld",&a[i]);if(i)f[i]=a[i]-a[i-1];elsef[i]=a[i];if(f[i]>0)sum+=f[i];}printf("%lld\n",sum-1);}
}
三角形
这里按照斐波那契数列进行分解,确实没问题,但是确实不懂为什么这样最大。
这里如果切割有剩余,那么为了防止剩下的一部分跟前面的某两个序列满足三角形条件,所以选择直接将剩余部分加到最后一段上
#include <iostream>
#define unsigned long long ullusing namespace std;ull a[93];int main(){int t;for(in i = 3; i < 93; i++){a[i] = a[i - 1] + a[i - 2];}cin>>t;while(t--){int n,ans = 0;cin>>n;for(int i = 1; a[i] <= x; i++){n -= a[i];ans++;}}
}
科林明伦杯 哈尔滨理工大学第十届程序设计竞赛 (补)相关推荐
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)---全题目+题解
文章目录 A.点对最大值 B.减成一 C.面积 D.扔硬币 E.赛马 F.三角形 G.养花 H.直线 I.字典序 J.最大值 A.点对最大值 链接:https://ac.nowcoder.com/ac ...
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解
"科林明伦杯"哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解 萌新又来写题解啦 原题链接 B 减成一 题意:存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多 ...
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) F
F 三角形 链接:https://ac.nowcoder.com/acm/contest/5758/F 来源:牛客网 小明有一根长度为a的木棒,现在小明想将木棒分为多段(每段木棒长度必须为整数), 使 ...
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 点对最大值 dp
链接:https://ac.nowcoder.com/acm/contest/5758/A 来源:牛客网 题目描述 这里有一棵树,每个点和每条边都存在一个价值.对于树上点对的价值,包括点对的起点和终点 ...
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) E
E 赛马 一天小明与他同学准备赛马,他们每人有n匹马,每匹马有一个固定的战力值,战力值高的马会战胜战力值低的马并赢得比赛.每匹马只能出场比赛一次.小明偷看到了他对手每匹马的出场顺序,小明在更改自己马出 ...
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)
A.点对最大值 这里有一棵树,每个点和每条边都存在一个价值.对于树上点对的价值,包括点对的起点和终点以及路径上边权值之和,不包括路径上其他点值. 求这颗树上最大的点对价值为多少.点对至少需要两个点. ...
- 科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)
比赛网址传送门 目录 A 点对最大值 B 减成一 C 面积 D 扔硬币 E 赛马 F 三角形 G 养花 H 直线 I 字典序 J 最大值 A 点对最大值 求这个树的直径,已经见过三次了,还是没打出来, ...
- 科林明伦杯”哈尔滨理工大学第十届程序设计竞赛B(减成1)
科林明伦杯"哈尔滨理工大学第十届程序设计竞赛 存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多少次操作,可以让所有数都变成1. 数据保证一定有解. 输入描述: 输入t, ...
- “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛 E 赛马 python
"科林明伦杯"哈尔滨理工大学第十届程序设计竞赛 E 赛马 python E 好家伙 田忌赛马真就 匹配就不解释了 思路,主要咱不止一匹马 所以就最好的比 对方比这个数小的即可 所以 ...
最新文章
- Linux学习笔记之文件管理和目录管理类命令
- Oracle RMAN 设置和配置(一)
- Android 利用ListView制作带竖线的多彩表格
- Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库
- 中国国家气象局天气预报信息接口
- 蓝桥杯java最小公倍数_蓝桥杯算法训练 最大最小公倍数
- java 考试复习整理——JAVA类和类成员的修饰符
- 【C语言】编译预处理和宏(附带##介绍)
- 微软开源项目 NeuronBlocks:像搭积木一样构建 NLP 深度学习模型!
- pyboard使用心得记录-基于对sk6812的控制(欢迎补充)
- PMP-项目沟通管理
- 8237A DMA控制器简答
- [MATLAB]matlab鼠标操作画两圆,做出两圆的公切线
- Springboot2.6+thymeleaf实现png和jpg图片格式转换
- pygame之窗口大小调整
- HDU1814和平委员会
- ATT的SIM卡(GoPhone)连不上4G网络怎么办
- 圣诞树Easyx绘图
- HarmonyOS Connect伙伴峰会:鸿湖万联全栈式使能鸿蒙智联
- “应用程序配置不正确,应用程序未能启动” 错误的解决
热门文章
- 蜜蜂路线图c语言思路,打蜜蜂(c语言)(Hit the bee (C language)).doc
- HourGlass源码阅读
- 如何用计算机远程桌面连接不上,手把手教你电脑远程桌面无法连接怎么办
- SQLITE3插入、查询效率的优化方法
- Leetcode 14.最长公共前缀(Longest Common Prefix)
- linux手机内存碎片整理软件,Linux不需要磁盘碎片整理
- cisco ios enable password与enable secret设置详解
- linux下rpm包安装MySQL
- 小米怎么和计算机连接网络设置密码,小米3C路由器怎么设置密码?
- 怎么用python编写心形图案,python编程爱心形状turtle