topcoder 673
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的更多相关文章
- Topcoder Srm 673 Div2 1000 BearPermutations2
\(>Topcoder \space Srm \space 673 \space Div2 \space 1000 \space BearPermutations2<\) 题目大意 : 对 ...
- TopCoder kawigiEdit插件配置
kawigiEdit插件可以提高 TopCoder编译,提交效率,可以管理保存每次SRM的代码. kawigiEdit下载地址:http://code.google.com/p/kawigiedit/ ...
- 记第一次TopCoder, 练习SRM 583 div2 250
今天第一次做topcoder,没有比赛,所以找的最新一期的SRM练习,做了第一道题. 题目大意是说 给一个数字字符串,任意交换两位,使数字变为最小,不能有前导0. 看到题目以后,先想到的找规律,发现要 ...
- TopCoder比赛总结表
TopCoder 250 500 ...
- Topcoder几例C++字符串应用
本文写于9月初,是利用Topcoder准备应聘时的机试环节临时补习的C++的一部分内容.签约之后,没有再进行练习,此文暂告一段落. 换句话说,就是本文太监了,一直做草稿看着别扭,删掉又觉得可惜,索性发 ...
- UVa 673 Parentheses Balance -SilverN
You are given a string consisting of parentheses () and []. A string of this type is said to be corr ...
- TopCoder
在TopCoder下载好luncher,网址:https://www.topcoder.com/community/competitive%20programming/ 选择launch web ar ...
- TopCoder SRM 596 DIV 1 250
body { font-family: Monospaced; font-size: 12pt } pre { font-family: Monospaced; font-size: 12pt } P ...
- UVa 673 Parentheses Balance
一个匹配左右括号的问题 /*UVa 673 Parentheses Balance*/ #include<iostream> #include<algorithm> #incl ...
随机推荐
- LPSTR、LPCSTR、LPWSTR、LPCWSTR、LPTSTR、LPCTSTR的来源及意义
1. Unicode字符集: 它是用两个字节表示一个字符的方法.比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字 ...
- MJ刷新控件MJRefreshFooterView上拉之后收不回来的解决办法
修改MJRefreshFooterView.m文件中的这个方法 #pragma mark - 状态相关 #pragma mark 设置状态 - (void)setState:(MJRefreshSta ...
- 【转】使用nmon监控suse或linux操作系统
目的:使用nmon监控操作系统的内存,CPU等症状 nmon介绍:nmon 工具可以为AIX和Linux性能专家提供监视和分析性能数据的功能,其中包括CPU,内存,IO,free空间,页面空间页面速度 ...
- c# 匿名对象增加动态属性
在开发过程中碰到了一个需求,需要动态创建对象及其动态属性.在尝试几种方法后,最后完成了需求,记录下过程,给园友参考下 1.动态创建对象一:匿名对象 ",Birthday =DateTime. ...
- z-index无效
1.要想给元素设置z-index样式,必须先让它变成定位元素,说的明白一点,就是要给元素设置一个postion:relative(定位元素:position属性值设置除默认值static以外的元素,包 ...
- C# Tips: Draw a data table in console
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- EL表达式运算符
语法:${运算表达式},EL表达式支持如下运算符 1.empty运算符:检查对象是否为null或“空”. 2.二元表达式:${user!=null?user.name : “”} . 3.[ ] 和 ...
- ServiceStack简介
原文:http://bbs.csdn.net/topics/390911450?page=1#post-398388262 在帖子中看到,大致了解了下,非常好的框架,留着学习 https://gith ...
- 面向对象的异常处理之深入理解java异常处理机制
什么是异常? 异常是对问题的描述,将问题的对象进行封装: 异常体系的特点:异常体系中的所有类以及建立的对象: 都具有可抛性,也就是说可以被throw和throws关键字所操作,只有异常体系具有该特点: ...
- JavaScript之六种排序法
1.冒泡排序循环的最大值从length递减每次循环只能排好最后一个,然后递减到第一个 function bubbleSort(){ var changedData = new Array(); var ...