zoukankan      html  css  js  c++  java
  • Codeforces461A Appleman and Toastman 贪心

            题目大意是Appleman每次将Toastman给他的Ni个数拆分成两部分后再还给Toastman,若Ni == 1则直接丢弃不拆分。而Toastman将每次获得的Mi个数累加起来作为分数,初始时Toastman直接获得N个数,求Toastman最后可以获得的最高分是多少。

           这题简单的贪心,Appleman每次拆分的时候。将最小的一个数作为一部分,剩下的作为另外一部分,这样能够使得较大的数尽量多次參与累加。

    #include <stdlib.h>
    #include <stdio.h>
    #include <algorithm>
    
    int values[500001];
    long long sums[500001];
    
    int compp(const void* a1, const void* a2)
    {
    	return *((int*)a2) - *((int*)a1);
    }
    
    int main()
    {
    #ifdef _DEBUG
    	freopen("e:\in.txt", "r", stdin);
    #endif // _DEBUG
    	int n;
    	scanf("%d", &n);
    	for (int i = 0; i < n;i++)
    	{
    		scanf("%d", &values[i]);
    	}
    	qsort(values, n, sizeof(int), compp);
    	sums[0] = values[0];
    	for (int i = 1; i < n;i++)
    	{
    		sums[i] = sums[i - 1] + values[i];
    	}
    	long long res = sums[n - 1];
    	for (int i = n - 1; i >= 1;i--)
    	{
    		res += sums[i];
    	}
    	printf("%I64d
    ", res);
    	return 0;
    }


  • 相关阅读:
    Linq-分页查询
    思维导图软件xmind和mindmanager哪个更好
    Enterprise Architect使用教程
    敏捷开发之Scrum
    总结---4
    判断单链表是否存在环
    设计模式分类
    实用手册:130+ 提高开发效率的 vim 常用命令
    Reverse Linked List II
    Single Number and Single Number II
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7295672.html
Copyright © 2011-2022 走看看