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. 获取IOS bundle中的文件

    在xcode中选择bundle中的文件,右键Show in Finder即可拷贝或删除文件.

  2. GDB使用

    1.display val 设置显示格式 2.i b显示所有断点

  3. Table of Contents - JavaSE

    Java Bean Lombok IO Commons-IO - IOUtils Regular Expression 正则表达式常用操作 Concurrency java.util.concurre ...

  4. Table of Contents - Tomcat

    Manager 持久化 Session JNDI Resources JNDI 配置 JDBC DataSources DBCP 配置 Realm Configuration 设置 HTTP 基本认证 ...

  5. Socket 两平台互相 通信 .NET

    两个平台互相通信,对方发送数据过来,我方接收数据,对数据进行处理后发送结果给对方,对方进行相应的操作. 首页,我方开启服务监听: Socket socket = new Socket(AddressF ...

  6. 模仿Word中组织结构图的特点生成流程图

    //基本原理: // 1. 从下往上计算位置 // 2. 模仿Word中组织结构图的特点 //调用代码: Tree<string> tree = new Tree<string> ...

  7. MSSQL数据库逻辑文件名修改与查看

    逻辑文件名是什么 你用的程序连接的时候使用的是数据库名,然后你在你的数据库右击属性的时候,左上角单击"文件",可以看到,数据库名和逻辑文件名是不一样的,你可以看自己的数据库的路径下 ...

  8. XenApp简单部署

    作者:MR.Yangwj 目录 XenApp简单部署... 1 一.         XenApp安装... 1 (一)      服务器配置任务... 9 1)     许可证服务器配置... 9 ...

  9. ODBC,实现图片循环写入Oracle数据库

    import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import jav ...

  10. 常用的HTML 标签二

    <marquee></marquee> 滚动的文字,也称"走马灯" 语法格式 <marquee 属性="属性值">内容< ...