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)...

 #include<bits/stdc++.h>

 using namespace std;
typedef long long ll; #define mod 1000000007 int a[],b[]; class BearCavalry {
public:
int countAssignments(vector <int> warriors, vector <int> horses) {
int n=warriors.size();
for (int i=;i<n;i++)
a[i]=warriors[i];
sort(a+,a+n);
reverse(a+,a+n); ll ans=; for (int i=;i<n;i++)
{
int t=;
for (int j=;j<n;j++)
if (i!=j) b[t++]=horses[j];
sort(b,b+t); int tmp=a[]*horses[i]; ll num=;
for (int i=;i<n;i++){
int x=-;
for (int j=;j<t;j++)
{
if (a[i]*b[j]<tmp)
{
x=j;
}
else break;
}
//if (x==-1&&i>1) x=0;
int xx=x+-(i-);
if (xx<) xx=;
num=num*xx%mod;
}
ans=(ans+num)%mod;
// cout<<num<<endl; }
return ans;
}
}; int main()
{
BearCavalry p;
int n;
cin>>n;
vector<int>aa,ba;
for (int i=;i<=n;i++)
{
int x;
cin>>x;
aa.push_back(x);
}
for (int i=;i<=n;i++)
{
int x;
cin>>x;
ba.push_back(x);
} cout<<p.countAssignments(aa,ba);
return ;
}

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. LPSTR、LPCSTR、LPWSTR、LPCWSTR、LPTSTR、LPCTSTR的来源及意义

    1. Unicode字符集: 它是用两个字节表示一个字符的方法.比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字 ...

  2. MJ刷新控件MJRefreshFooterView上拉之后收不回来的解决办法

    修改MJRefreshFooterView.m文件中的这个方法 #pragma mark - 状态相关 #pragma mark 设置状态 - (void)setState:(MJRefreshSta ...

  3. 【转】使用nmon监控suse或linux操作系统

    目的:使用nmon监控操作系统的内存,CPU等症状 nmon介绍:nmon 工具可以为AIX和Linux性能专家提供监视和分析性能数据的功能,其中包括CPU,内存,IO,free空间,页面空间页面速度 ...

  4. c# 匿名对象增加动态属性

    在开发过程中碰到了一个需求,需要动态创建对象及其动态属性.在尝试几种方法后,最后完成了需求,记录下过程,给园友参考下 1.动态创建对象一:匿名对象 ",Birthday =DateTime. ...

  5. z-index无效

    1.要想给元素设置z-index样式,必须先让它变成定位元素,说的明白一点,就是要给元素设置一个postion:relative(定位元素:position属性值设置除默认值static以外的元素,包 ...

  6. C# Tips: Draw a data table in console

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. EL表达式运算符

    语法:${运算表达式},EL表达式支持如下运算符 1.empty运算符:检查对象是否为null或“空”. 2.二元表达式:${user!=null?user.name : “”} . 3.[ ] 和 ...

  8. ServiceStack简介

    原文:http://bbs.csdn.net/topics/390911450?page=1#post-398388262 在帖子中看到,大致了解了下,非常好的框架,留着学习 https://gith ...

  9. 面向对象的异常处理之深入理解java异常处理机制

    什么是异常? 异常是对问题的描述,将问题的对象进行封装: 异常体系的特点:异常体系中的所有类以及建立的对象: 都具有可抛性,也就是说可以被throw和throws关键字所操作,只有异常体系具有该特点: ...

  10. JavaScript之六种排序法

    1.冒泡排序循环的最大值从length递减每次循环只能排好最后一个,然后递减到第一个 function bubbleSort(){ var changedData = new Array(); var ...