只做了两个就去上课去啦...
A. Company Merging
time limit per test

1 second

memory limit per test

512 megabytes

input

standard input

output

standard output

A conglomerate consists of nn companies. To make managing easier, their owners have decided to merge all companies into one. By law, it is only possible to merge two companies, so the owners plan to select two companies, merge them into one, and continue doing so until there is only one company left.

But anti-monopoly service forbids to merge companies if they suspect unfriendly absorption. The criterion they use is the difference in maximum salaries between two companies. Merging is allowed only if the maximum salaries are equal.

To fulfill the anti-monopoly requirements, the owners can change salaries in their companies before merging. But the labor union insists on two conditions: it is only allowed to increase salaries, moreover all the employees in one company must get the same increase.

Sure enough, the owners want to minimize the total increase of all salaries in all companies. Help them find the minimal possible increase that will allow them to merge companies into one.

Input

The first line contains a single integer nn — the number of companies in the conglomerate (1≤n≤2⋅1051≤n≤2⋅105). Each of the next nn lines describes a company.

A company description start with an integer mimi — the number of its employees (1≤mi≤2⋅1051≤mi≤2⋅105). Then mimi integers follow: the salaries of the employees. All salaries are positive and do not exceed 109109.

The total number of employees in all companies does not exceed 2⋅1052⋅105.

Output

Output a single integer — the minimal total increase of all employees that allows to merge all companies.

Example
input

Copy
3
2 4 3
2 2 1
3 1 1 1
output

Copy
13
Note

One of the optimal merging strategies is the following. First increase all salaries in the second company by 22, and merge the first and the second companies. Now the conglomerate consists of two companies with salaries [4,3,4,3][4,3,4,3] and [1,1,1][1,1,1]. To merge them, increase the salaries in the second of those by 33. The total increase is 2+2+3+3+3=132+2+3+3+3=13.

思路:一个大集团下面有n个公司,每个公司m个员工,每个员工的工资mi,现在要合并公司.两两合并,最后只剩一个才行,合并要求是,两个公司之间的员工最大工资相等才行.

只要记录每个公司的最大工资,然后排序,再开始从小到大挨着两两合并.

#include <iostream>
#include <algorithm>
#include <cstdlib> using namespace std; struct everycom{
int maxx;
int num;
}; struct everycom ec[]; int cmp(struct everycom a,struct everycom b){
return a.maxx<b.maxx;
} int main(){
int n,m;
int now=;
int maxx=;
//while(scanf("%d",&n)){
scanf("%d",&n);
long long sum=;
long long nownum=;
for(int i=;i<n;i++){
cin>>m;
ec[i].num=m;
maxx=;
for(int j=;j<m;j++){
cin>>now;
maxx=now>maxx?now:maxx;
}
ec[i].maxx=maxx;
}
sort(ec,ec+n,cmp);
for(int i=;i<n-;i++){
long long tmp=ec[i+].maxx-ec[i].maxx;
nownum+=ec[i].num;
sum+=tmp*nownum;
}
cout<<sum<<endl;
}

M. The Pleasant Walk

time limit per test

1 second

memory limit per test

512 megabytes

input

standard input

output

standard output

There are nn houses along the road where Anya lives, each one is painted in one of kk possible colors.

Anya likes walking along this road, but she doesn't like when two adjacent houses at the road have the same color. She wants to select a long segment of the road such that no two adjacent houses have the same color.

Help Anya find the longest segment with this property.

Input

The first line contains two integers nn and kk — the number of houses and the number of colors (1≤n≤1000001≤n≤100000, 1≤k≤1000001≤k≤100000).

The next line contains nn integers a1,a2,…,ana1,a2,…,an — the colors of the houses along the road (1≤ai≤k1≤ai≤k).

Output

Output a single integer — the maximum number of houses on the road segment having no two adjacent houses of the same color.

Example
input

Copy
8 3
1 2 3 3 2 1 2 2
output

Copy
4
Note

In the example, the longest segment without neighboring houses of the same color is from the house 4 to the house 7. The colors of the houses are [3,2,1,2][3,2,1,2] and its length is 4 houses.

思路:让找最长的序列,序列中任何两个相邻的元素不能相等.

#include <iostream>

using namespace std;

int main(){
int n,k;
//int a[100005];
int ai;
while(cin>>n>>k){
int la=;
int now=;
int maxx=;
cin>>ai;
la=ai;
for(int i=;i<n;i++){
//cin>>a[i];
cin>>ai;
if(ai!=la){
now++;
}else{
now=;
}
la=ai;
maxx= now>maxx?now:maxx;
}
cout<<maxx<<endl;
}
}

CF_2018-2019 Russia Open High School Programming Contest (Unrated, Online Mirror, ICPC Rules, Teams Preferred)的更多相关文章

  1. 2018-2019 Russia Open High School Programming Contest (Unrated, Online Mirror, ICPC Rules, Teams Preferred)

    前言 有一场下午的cf,很滋磁啊,然后又和dalao(见右面链接)组队打了,dalao直接带飞我啊. 这是一篇题解,也是一篇总结,当然,让我把所有的题目都写个题解是不可能的了. 按照开题顺序讲吧. 在 ...

  2. 2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)

    2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred) easy: ACE ...

  3. 2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)【A题 类型好题】

    A. Berstagram Polycarp recently signed up to a new social network Berstagram. He immediately publish ...

  4. D. Dog Show 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest, qualification stage (Online Mirror, ACM-ICPC Rules, Teams Preferred)

    http://codeforces.com/contest/847/problem/D 巧妙的贪心 仔细琢磨... 像凸包里的处理 #include <cstdio> #include & ...

  5. 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)

    A 思路: 贪心,每次要么选两个最大的,要么选三个,因为一个数(除了1)都可以拆成2和3相加,直到所有的数都相同就停止,这时就可以得到答案了; C: 二分+bfs,二分答案,然后bfs找出距离小于等于 ...

  6. 2014-2015 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)

    I. Sale in GameStore(贪心) time limit per test 2 seconds memory limit per test 512 megabytes input sta ...

  7. 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) 几道简单题的题解

    A. Toda 2 题意:给你n个人,每个人的分数是a[i],每次可以从两个人到五个人的使得分数减一,使得最终的分数相等: 思路:假设答案为m:每个人的分数与答案m的差值为d[i],sum为d[i]的 ...

  8. 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) J dp 背包

    J. Bottles time limit per test 2 seconds memory limit per test 512 megabytes input standard input ou ...

  9. 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) G 优先队列

    G. Car Repair Shop time limit per test 2 seconds memory limit per test 512 megabytes input standard ...

随机推荐

  1. CSS布局-flex布局入门教程

    前言 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. 查询兼容 F ...

  2. MySQL无法插入中文的解决方案

    本人在做数据库的连接过程中,发现无法插入中文值.原因是mysql的默认编码是latin1,只须将编码改为utf8即可. 在mysql的命令行窗口中输入 status 会出现当前的编码.在mysql的安 ...

  3. [物理学与PDEs]第5章第2节 变形的描述, 应变张量 2.3 位移梯度张量与无穷小应变张量

    1.  位移向量 $$\bex {\bf u}={\bf y}-{\bf x}. \eex$$ 2.  位移梯度张量 $$\bex \n_x{\bf u}={\bf F}-{\bf I}. \eex$ ...

  4. C++中数组作为形参进行传递(转)

    有两种传递方法,一种是function(int a[]); 另一种是function(int *a) 这两种两种方法在函数中对数组参数的修改都会影响到实参本身的值! 对于第一种,根据之前所学,形参是实 ...

  5. RT-SA-2019-003 Cisco RV320 Unauthenticated Configuration Export

    Advisory: Cisco RV320 Unauthenticated Configuration Export RedTeam Pentesting discovered that the co ...

  6. cmake find_package 命令

    1. find_package(<Name>)命令首先会在模块路径中寻找 Find<name>.cmake,这是查找库的一个典型方式. 具体查找路径依次为CMake:  变量$ ...

  7. LOJ 3049: 洛谷 P5284: 「十二省联考 2019」字符串问题

    题目传送门:LOJ #3049. 题意简述: 给定一个长度为 \(n\) 的母串 \(S\). 有 \(n_a\) 个 A 类串,都是 \(S\) 的子串,以区间的形式给出. 有 \(n_b\) 个 ...

  8. JQuery EasyUI 之 messager基本使用

    ♦ 基本语法:$.messager.alert ( title , msg , icon , fn ): 其中,icon有四种设置:"error"."info" ...

  9. adb.exe 已停止工作解决办法

    最近因为工作原因,接触了下Android Studio,在使用真机调试的时候碰到了adb.exe 已经停止工作的错误. 虽然网上有很多和我一样的教程,但是我觉的还是记录一下自己的情况比较好,毕竟每个人 ...

  10. linux redis 主从复制

    在从服务的redis.conf 添加 slaveof 主服务器 端口 查看reids进程和端口,都是存在的.只是ip地址是127.0.0.1而不是0.0.0.0,只是本机能使用; 查找redis的配置 ...