2017 Multi-University Training Contest - Team 8
HDU6140 Hybrid Crystals
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6140
题目意思:这场多校是真的坑,题目爆长,心态爆炸,题目意思就是给定一个序列。序列的每个值都有属性,N代表可加可减,L代表只能加,D代表只能减,当然这些都可以用或者不用。给定一个k,问k是否可能用这个序列构成。
思路: 源头都来自这个奇怪的式子

解释一下这个式子什么意思:
如果b[i]是N那么所有b[j](j<i)属性是N的和大于b[i]。
如果b[i]是L那么所有b[j](j<i)属性是N和L的和小于b[i]。
如果b[i]是L那么所有b[j](j<i)属性是N和R的和小于b[i]。

偷个懒直接把题解截图过来。因为题目保证一开始a[1]=1,且type=N,那么一开始我们可以表示[-1,1]范围内的整数,现在a[2]<=a[1],假设a[2]=1,那么如果type为L那么我们现在就可以表示[-2,1]范围内的所有整数了,如果type为R就可以表示[-1,2]范围内的整数了。所以以此类推,再结合上述题解中的解释,我们只需要从头到尾扫一遍就知道,是否可以构成指定整数了,思维题啊!!!
代码:
//Author: xiaowuga
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <queue>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <ctime>
#include <map>
#include <bitset>
#include <cctype>
#define maxx INT_MAX
#define minn INT_MIN
#define inf 0x3f3f3f3f
#define mem(s,ch) memset(s,ch,sizeof(s))
#define nc cout<<"nc"<<endl
#define sp " "
const long long N=;
using namespace std;
typedef long long LL;
typedef int II;
II n,k;
II a[+];
char b[+];
int main() {
ios::sync_with_stdio(false);cin.tie();
II T;
cin>>T;
while(T--){
cin>>n>>k;
for(II i=;i<n;i++) cin>>a[i];
for(II i=;i<n;i++){
cin>>b[i];
}
II l=,r=;
for(II i=;i<n;i++){
if(b[i]=='N'){l-=a[i]; r+=a[i];}
else if(b[i]=='L') r+=a[i];
else l-=a[i];
}
if(k>=l&&k<=r) cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return ;
}
HDU6143 Killer Names
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6143
题目意思:要求构造若干名字,名字包括 first name last name 两部分,均需包含 n 个字符,已知有 m 种字符供选择,求最多有多少种不同的构造方法,使得 first name 和 last name 不含相同字符。
题目思路:不想说什么……组合数学,自己百度第二类斯特林数,公式就是∑C(m,i)*S(n,i)*A[i]*(m-i)^n,好好理解一下这个公式,第二类斯特林数就是n个无差别的坑和i个东西,要把东西放进去有多少种放法,现在注意我们这里是有差别的,所以再乘一个阶乘数就可以了。
代码:
//Author: xiaowuga
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <queue>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <ctime>
#include <map>
#include <bitset>
#include <cctype>
#define maxx INT_MAX
#define minn INT_MIN
#define inf 0x3f3f3f3f
#define mem(s,ch) memset(s,ch,sizeof(s))
#define nc cout<<"nc"<<endl
#define sp " "
const long long N=+;
const long long mod=1e9+;
using namespace std;
typedef long long LL;
typedef int II;
LL C[N][N]={},S[N][N]={},A[N]={};
void init(){
for(II i=;i<N;i++) C[i][]=;
for(II i=;i<N;i++)
for(II j=;j<=i;j++){
C[i][j]=(C[i-][j]+C[i-][j-])%mod;
}
A[]=;
for(II i=;i<N;i++){
A[i]=A[i-]*i%mod;
}
for(II i=;i<N;i++){
S[i][i]=;
if(i>=) S[i][]=;
for(II j=;j<i;j++)
S[i][j]=(j*S[i-][j]+S[i-][j-]+mod)%mod;
}
}
LL q_power(LL a,LL k){
LL ans=;
while(k){
if(k%) ans=(ans*a%mod+mod)%mod;
k/=;
a=(a*a%mod+mod)%mod;
}
return ans;
}
int main() {
ios::sync_with_stdio(false);cin.tie();
II T;
init();
cin>>T;
II n,m;
LL ans=;
while(T--){
cin>>n>>m;
ans=;
for(II i=;i<=m-;i++){
LL t1=C[m][i]*S[n][i]%mod;
t1=t1*A[i]%mod;
LL t2=q_power((m-i),n)%mod;
LL tmp=t1*t2%mod;
ans=(ans+tmp)%mod;
}
cout<<ans<<endl;
}
return ;
}
2017 Multi-University Training Contest - Team 8的更多相关文章
- 2017 Multi-University Training Contest - Team 9 1005&&HDU 6165 FFF at Valentine【强联通缩点+拓扑排序】
FFF at Valentine Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- 2017 Multi-University Training Contest - Team 9 1004&&HDU 6164 Dying Light【数学+模拟】
Dying Light Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Tot ...
- 2017 Multi-University Training Contest - Team 9 1003&&HDU 6163 CSGO【计算几何】
CSGO Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- 2017 Multi-University Training Contest - Team 9 1002&&HDU 6162 Ch’s gift【树链部分+线段树】
Ch’s gift Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- 2017 Multi-University Training Contest - Team 9 1001&&HDU 6161 Big binary tree【树形dp+hash】
Big binary tree Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 2017 Multi-University Training Contest - Team 1 1003&&HDU 6035 Colorful Tree【树形dp】
Colorful Tree Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- 2017 Multi-University Training Contest - Team 1 1006&&HDU 6038 Function【DFS+数论】
Function Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total ...
- 2017 Multi-University Training Contest - Team 1 1002&&HDU 6034 Balala Power!【字符串,贪心+排序】
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- 2017 Multi-University Training Contest - Team 1 1011&&HDU 6043 KazaQ's Socks【规律题,数学,水】
KazaQ's Socks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- 2017 Multi-University Training Contest - Team 1 1001&&HDU 6033 Add More Zero【签到题,数学,水】
Add More Zero Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
随机推荐
- JMeter学习笔记(三)
D. User Defined Variables:用户自定义的变量,在此我们可以定义后面原件需要引用的变量并对其进行赋值.jsessionid一般是服务器返回的,每个用户返回的都不一样,所以在此不应 ...
- U盘 格式化 ext3 ext4
[root@ok Desktop]# mkfs.ext3 /dev/sdc mke2fs 1.41.12 (17-May-2010) /dev/sdc is entire device, not ju ...
- ural1517后缀数组
题意:求两串字符(0————255)的最长公共字串 思路:先将两个字符链接起来,中间用一个不曾出现过的字符,然后直接求出height数组,然后根据它的特性,求出最长的公共字串,当然这个最长公共字串的坐 ...
- ajax——优化0126(增删改查:添加查看详情,返回结果类型为JSON型,在窗口显示)
效果: 鼠标点击查看详情时 数据库: 0126.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- 示例 - 如何在ASP.NET中应用Spider Studio生成的DLL?
>> 接前文 "示例 - 如何在Console应用程序中应用SpiderStudio生成的DLL?", 将其运用到ASP.NET中: 1. 创建WebApplicati ...
- html 处理
近期做了一个后台管理网站,后台页面都是Html页面,里面再通过ajax访问后台服务.要做到比较好的用户体验,即:如果用户没有登录或没有权限马上调到登录页面,而不是等到页面加载后再ajax时判断是否登录 ...
- javascript不可用的问题探究
昨天在Twitter上的一些有趣的讨论中, 我发现人们对于Web应用和站点对javascript的依赖普遍存在一种疑惑. 这种疑惑一直都存在, 而对我而言, 这个问题随着浏览技术的飞跃发展而集中爆发了 ...
- 人脸验证算法Joint Bayesian详解及实现(Matlab)
python http://blog.csdn.net/cyh_24/article/details/49059475 github https://github.com/johnnyconstant ...
- doAfterBody()方法是在( )接口中定义的。
A.Tag B.IterationTag C.BodyTag D.TagSupport 解答:B
- EMPTY表示元素不能包含文本,也不能包含子元素
<?xml version=”1.0″ encoding=”GB2312″?> <!ELEMENT Customer EMPTY> <!ATTLIST Customer称 ...