DiV1

300:给一组士兵再给一组战马都有权值。

安排战马的顺序的方案数,是第一个士兵和其战马的权值乘积最大。

做法:随便暴力就好。

枚举战马和第一个士兵匹配。其他士兵按权值从大到小排序,战马权值按从小到大排序。1.

举个例子:士兵,A,B,C,D,E

战马,a,b,c,d,e

第一个士兵和其战马的乘积是:tmp

A 可以A*c<tmp;

B 可以 B*d<tmp;

B 与战马的乘积小于tmp,其战马的权值一定大于等于c,因为 1.

所以答案就是ans = (c-第几个士兵+1)*(d-第几个士兵+1)...

  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4. typedef long long ll;
  5.  
  6. #define mod 1000000007
  7.  
  8. int a[],b[];
  9.  
  10. class BearCavalry {
  11. public:
  12. int countAssignments(vector <int> warriors, vector <int> horses) {
  13. int n=warriors.size();
  14. for (int i=;i<n;i++)
  15. a[i]=warriors[i];
  16. sort(a+,a+n);
  17. reverse(a+,a+n);
  18.  
  19. ll ans=;
  20.  
  21. for (int i=;i<n;i++)
  22. {
  23. int t=;
  24. for (int j=;j<n;j++)
  25. if (i!=j) b[t++]=horses[j];
  26. sort(b,b+t);
  27.  
  28. int tmp=a[]*horses[i];
  29.  
  30. ll num=;
  31. for (int i=;i<n;i++){
  32. int x=-;
  33. for (int j=;j<t;j++)
  34. {
  35. if (a[i]*b[j]<tmp)
  36. {
  37. x=j;
  38. }
  39. else break;
  40. }
  41. //if (x==-1&&i>1) x=0;
  42. int xx=x+-(i-);
  43. if (xx<) xx=;
  44. num=num*xx%mod;
  45. }
  46. ans=(ans+num)%mod;
  47. // cout<<num<<endl;
  48.  
  49. }
  50. return ans;
  51. }
  52. };
  53.  
  54. int main()
  55. {
  56. BearCavalry p;
  57. int n;
  58. cin>>n;
  59. vector<int>aa,ba;
  60. for (int i=;i<=n;i++)
  61. {
  62. int x;
  63. cin>>x;
  64. aa.push_back(x);
  65. }
  66. for (int i=;i<=n;i++)
  67. {
  68. int x;
  69. cin>>x;
  70. ba.push_back(x);
  71. }
  72.  
  73. cout<<p.countAssignments(aa,ba);
  74. return ;
  75. }

topcoder 673的更多相关文章

  1. Topcoder Srm 673 Div2 1000 BearPermutations2

    \(>Topcoder \space Srm \space 673 \space Div2 \space 1000 \space BearPermutations2<\) 题目大意 : 对 ...

  2. TopCoder kawigiEdit插件配置

    kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...

  3. 记第一次TopCoder, 练习SRM 583 div2 250

    今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...

  4. TopCoder比赛总结表

    TopCoder                        250                              500                                 ...

  5. Topcoder几例C++字符串应用

    本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...

  6. UVa 673 Parentheses Balance -SilverN

    You are given a string consisting of parentheses () and []. A string of this type is said to be corr ...

  7. TopCoder

    在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...

  8. TopCoder SRM 596 DIV 1 250

    body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...

  9. UVa 673 Parentheses Balance

    一个匹配左右括号的问题 /*UVa 673 Parentheses Balance*/ #include<iostream> #include<algorithm> #incl ...

随机推荐

  1. nodejs7-buffer

    buffer:js在后台操作的必须用到二进制,buffer类就是用于帮助我们处理这种情况   创建buffer对象: new Buffer(size):创建buff对象,有length属性 buf.f ...

  2. 自定义View(一)-ViewGroup实现优酷菜单

    自定义View的第一个学习案例 ViewGroup是自动以View中比较常用也比较简单的一种方式,通过组合现有的UI控件,绘制出一个全新的View 效果如下: 主类实现如下: package com. ...

  3. nodemanager启动失败

    yarn启动报错: 2016-11-16 16:12:44,304 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping N ...

  4. js如何检测打开窗口是否存在的三个方法?

    js打开窗口一般也就是使用window.open方法: win = window.open(CHILD_WINDOW_URL, CHILD_WINDOW_NAME, CHILD_WINDOW_ATTR ...

  5. trigger()的event事件对象之坑

    问题引入,先贴一段有问题的代码,如果你对 trigger()  这个函数了解不透彻,还真看不出这段代码错在哪.完成的功能是样式转换器,想让页面在加载后自行触发点击事件隐藏三个按钮,但是效果如图并没有隐 ...

  6. USB接口介绍

        USB设备系统分为两个部分,USB Host端和USB Device端,以USB接口的U盘为例子,U盘自身是一个USB Device,PC机的USB接口以及相关的控制电路为USB Host部分 ...

  7. ◆linux分区的加密与自动解密◆——Super孟再创辉煌

    首先制作分区的加密挂载: 分区的自动解密:

  8. Oracle10G的Sga_max_size和sga_target应该如何设置啊!

    1调整原因 我们的客户反应现在我们公司的软件使用起来比较漫.目前他们已经用快要两年了.根据用户反应的情况,公司派我到现场做数据库调优.我在现场走访了几个部门,也向操作人员了解了一些情况.我初步分析认定 ...

  9. jquery 1.6发布后,增加prop()方法部分取代attr()方法

    以前的jq中,全部使用attr来访问对象的属性,比如取一个图片的alt属性,就可以这样做$('#img').attr('alt');   但是在某些时候,比如访问checkbox的disabled属性 ...

  10. OpenSSL 安全漏洞: heartbleed

    Heartbleed 是 2014年4月7日被广泛报道的一个 OpenSSL 安全漏洞,号称是灾难. 利用它能读取服务器上最多64k的内存,只要该服务器可以通过ssl连接.   Heartbleed ...