zoukankan      html  css  js  c++  java
  • 远征【考试】

    Description

    寒枫将军将要带领他的部队去圣雪山消灭那里的冰龙。 部队分成了 若干个小队, 属于同一个小队的人兵种相同 。 寒枫将军有着杰出的指挥能力 , 在战斗的时候, 寒枫将军能够让所有相同兵种的人互相配合, 使 t 个相同兵种的人发挥出t2t2 的战斗力 ; 寒枫将军还能让不同兵种的人互相配合, 使整个部队的战斗力是所有兵种战斗力的和。 
    例如, 部队中有 3 个小队, 分别是 5 个人的步兵小队, 3 个人的步兵小队,3 个人的骑兵小队。 那么步兵战斗力为 64, 骑兵战斗力为 9, 部队总战斗力为73。 
    寒枫将军需要知道他的部队的战斗力是多少 。

    Input

    第一行一个整数 n, 表示小队数。 
    接下来 n 行, 第 i 行有两个整数 ai、 bi,表示这个小队有 ai 个人, 兵种为 bi。

    Output

    一行一个整数, 部队的战斗力 。

    Sample Input


    5 1 
    3 1 
    3 2

    Sample Output

    73

    Hint

    【 数据规模与约定】 
    10%的数据, n=1 
    30%的数据, n≤1000 
    另有 20%的数据, ai=1 
    另有 30%的数据, bi≤1000 
    100%的数据, 1≤n≤100000, 1≤ai≤10000, 1≤bi≤1,000,000,000

     
    题解:
    模拟一下,map离散化一下就可以了。
     
     
    代码:
    #include<iostream>
    #include<stdio.h>
    #include<algorithm>
    #include<cstring>
    #include<stdlib.h>
    #include<map>
    #define ll long long
    using namespace std;
    ll from[100100];
    int n,num=0;
    map<ll,int> mp;
    int main(){
        memset(from,0,sizeof(from));
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            ll x,y;scanf("%lld%lld",&x,&y);
            if(mp[y]==0) mp[y]=++num;
            from[mp[y]]+=x;
        }
        ll ans=0;
        for(int i=1;i<=n;i++){
            ans+=from[i]*from[i];
        }
        printf("%lld",ans);
    }
  • 相关阅读:
    [ 9.10 ]CF每日一题系列—— 186A模拟处理字符串
    python查看删除你微信的账号
    python进阶之路4.2---装饰器
    python进阶之路4.1---生成器与迭代器
    Python进阶之路---1.4python数据类型-数字
    Python进阶之路---1.3python环境搭建
    Python进阶之路---1.2python版本差异
    Python进阶之路---1.1python简介
    麦进斗Magento2 SEO默认设置的完整策划
    如何修改Magento主题中的toplinks
  • 原文地址:https://www.cnblogs.com/renjianshige/p/7309788.html
Copyright © 2011-2022 走看看