zoukankan      html  css  js  c++  java
  • codeforces 1151 D

    SM的水题。

    codeforces 1151D

    当时写对了,因为第一题卡了,,然后这题就没细想,原来是没开longlong。

    题意:n个位置每个位置有a和b,让sum=(每个点的左面的点的数量*a+右面点的数量*b)*n最小

    理解:就是个小贪心,注意下开longlong就OK了

     1 #include <iostream>
     2 #include <cmath>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <string>
     6 #include <map>
     7 #include <iomanip>
     8 #include <algorithm>
     9 #include <queue>
    10 #include <stack>
    11 #include <set>
    12 #include <vector>
    13 //const int maxn = 1e5+5;
    14 #define ll long long
    15 #define MAX INT_MAX
    16 #define FOR(i,a,b) for( ll i = a;i <= b;++i)
    17 //#define MOD 142857
    18 using namespace std;
    19 ll n,ans;
    20 struct node
    21 {
    22     ll a, b;
    23 }v[110000];
    24 bool cmp(node x,node y)
    25 {
    26     if(x.a-x.b==y.a-y.b)
    27     {
    28         if(x.a==y.a)
    29         {
    30             return x.b<y.b;
    31         }
    32         else return x.a>y.a;
    33     }
    34     return x.a-x.b>y.a-y.b;
    35 }
    36 int main()
    37 {
    38 //    freopen("D:\common_text\code_stream\in.txt","r",stdin);
    39 //    freopen("D:\common_text\code_stream\out.txt","w",stdout);
    40     cin>>n;
    41     for(ll i=1;i<=n;++i)
    42     {
    43         cin>>v[i].a>>v[i].b;
    44     }
    45     sort (v+1,v+1+n,cmp);
    46     FOR(i,1,n)
    47     {
    48         ans=ans+(v[i].a)*(i-1)+(v[i].b)*(n-i);
    49     }
    50     cout<<ans;
    51 }
  • 相关阅读:
    Log4j学习
    HttpURLConnection请求
    正则表达式验证中文、图片上传
    freemarker学习
    参数中带有“&”符号问题
    禁止打印页面
    myEclipse 界面窗口打不开问题
    屏蔽网页右键
    分享功能
    table表格某一td内容太多导致样式混乱的解决方案
  • 原文地址:https://www.cnblogs.com/jrfr/p/10754157.html
Copyright © 2011-2022 走看看