Codeforces740B. Alyona and flowers

2024-02-10 07:32

本文主要是介绍Codeforces740B. Alyona and flowers,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

思路
对于选取的下标区间l <=x <=r;如果 Σsubarray[x]>0,就选取这个区间,否则不选

#include<bits/stdc++.h>
using namespace std;
int a[105];
vector<int> b[105];
int main(){int n,m;cin>>n>>m;for(int i=1;i<=n;i++)cin>>a[i];for(int i=1;i<=m;i++){int l,r;cin>>l>>r;b[i].push_back(l);b[i].push_back(r);}vector<int> spe;for(int i=1;i<=m;i++){int sum=0;for(int j=*(b[i].begin());j<=*(++b[i].begin());j++){sum+=a[j];}if(sum>0){spe.push_back(i);}}int sum=0;for(int i=1;i<=n;i++){int cnt=0;for(auto j=spe.begin();j!=spe.end();j++){if(i>=*(b[*j].begin()) && i<=*(++b[*j].begin()) ){cnt++;}}sum += cnt*a[i]; }printf("%d\n",sum);
}

这篇关于Codeforces740B. Alyona and flowers的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/696498

相关文章

Codeforces Round #381 (Div. 1) A. Alyona and mex

这道题我觉得题意看懂了,大问题也就没有了。 一个比较简单的思维题。 mex是不在子串中的最小非负数,那么对于一个子串而言,最大的mex就是子串的长度+1。 因为子串的长度不一,那么mex就有一个范围,题意就是让你使得mex的最小值最大化,也就是保证最小长度的子串(假设长度为len)能够取到[0, len-1]的数。 那么,看到0~len-1就要想到 取模 。需要保证无论我的最短子串取在何处

uva 1459 - Flowers Placement(二分图匹配+暴力)

题目链接:uva 1459 - Flowers Placement 暴力,在暴力的基础上用二分图匹配剪枝,如果当前位置放k,导致后面的位置不能匹配,即可回溯。 #include <cstdio>#include <cstring>#include <vector>#include <algorithm>using namespace std;const int maxn

POJ 1157 - LITTLE SHOP OF FLOWERS (动态规划)

点击打开链接 WA了两次,因为没看清题目:花是不能不插的! d[i][j] = max ( d[i][j - 1], d[i - 1][j - 1] + a[i][j] ); 表示前i束花,放在前j个花瓶的最大审美数。 // poj 1157 (IOI 1999 - dp)// [6/13/2014 wind]#include <iostream>#include

CF451E: Devu and Flowers(容斥原理 + 考虑反面 + golang组合模版)

题目截图 题目翻译 题目分析 正难则反,考虑所有不符合的例子 由于n很小,所以可以状态压缩二进制遍历完全部不符合例子的组合 对于不符合的例子,假设其中第i个不符合,那么就消耗掉fi + 1个球 以此类推,减剩下s2个球 这时候使用隔板法分给n个箱子,加上n - 1个挡板,就是comb(s2 + n - 1, n - 1) 对于容斥原理,奇偶个数要对应不同的符号,这里需要注意 go代

poj 动态规划DP - 1157 LITTLE SHOP OF FLOWERS

这里有一份DP题目列表点击打开链接,大家想专门刷DP的可以看一下。 我们有不同的花和花瓶,每束花在不同的花瓶里有不同的价值,最后找出价值最大的放花顺序。 动态规划最重要的是找出递推式,我们将每束花在不同花瓶的价值放在data[i][j]里,map[i][j]表示第i束花插在第1-j号花瓶中全局最大的价值,递推式为: map[i][j] = max(map[i-1][j-1]+data[i][

CodeForces451E Devu and Flowers

题目链接 问题分析 没有想到母函数的做法…… 其实直接看题思路挺简单的。发现如果每种花都有无限多的话,问题变得十分简单,答案就是\(s+n-1\choose n - 1\)。然后发现\(n\)只有\(20\),于是大力容斥一波就完事了。 参考代码 #include <cstdio>const long long Max_n = 30;const long long Mod = 10000000

2045第六题 拯救花园 (flowers)

题目大意: 有n只兔子,每只兔子抓回去的时间为ti,回来的时间也是ti,则抓一只兔子要2*ti的时间,di则为每只兔子一个时间单位能吃多少草,用最优方法做的话它们一共吃了多少草(最少) 贪心标准: 我们先把每一只兔子的性价比算出来(di/ti),及在一个时间单位里能阻止吃多少草,如果性价比相同,则根据其他兔子在这只兔子搬运的时间中能吃多少草进行比较 #include <bits/stdc

#数论,组合,容斥原理,lucas定理,乘法逆元#洛谷 CF451E Devu and Flowers

题目 n n n种颜色,每种颜色有 a i a_i ai​枝花,现挑出 m m m朵,使没有颜色完全相同的方案 分析 可以发现,这道题是求多重集的组合数,根据容斥原理也就是 C k + r − 1 k − 1 − ∑ i = 1 k C k + r − n i − 2 k − 1 + ∑ 1 ≤ i &lt; j ≤ k C k + r − n i − n j − 3 k − 1 −

Codeforces740A. Alyona and copybooks

http://codeforces.com/problemset/problem/740/A 思路 让n对4取模,re=n%4 re==0,直接输出 re==1,有可能差1本(a),有可能差1+4本( b+c ),有可能差1+4+4本(3c) re==2,有可能差2本(b or 2*a),有可能差2+4本(2 *c) re==3,有可能差3本(3*a or c or a+b) #in

hdu 4614——Vases and Flowers

线段树 线段树太渣了,看别人代码恶补下。http://www.cnblogs.com/aukle/archive/2013/07/26/3217639.html #include<iostream>#include<cstdio>using namespace std;#define maxn 50010#define ls (rt<<1)#define rs (rt<<1|1)#