2018 Multi-University Training Contest 3
claris出题,orzzzzzz。前一天晚上说是贪心专场,喵喵喵???
之前clsris说难题扔多校了,据说07,13是女生赛撤下来的题,喵喵喵???
A.Ascending Rating
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6319
题意:给定一个序列 a[1..n],对于每个长度为m的连续子区间,求出区间内ai的最大值以及从左往右扫描该区间时ai的最大值的变化次数。
分析:用pair型的deque去维护a的单调队列,队列中元素的个数就是最大值的变化次数。考虑倒着r从n到m去处理。
#include<iostream>
#include<cstring>
#include<queue>
#define maxn 10000005
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
int a[maxn];
deque<pii> dq;
int n,m,k,p,q,r,mod;
int main(){
ios::sync_with_stdio(false);
cin.tie();cout.tie();
int t;
cin >> t;
while (t--){
cin >> n >> m >> k >> p >> q >> r >> mod;
for (int i=;i<=k;i++) cin >> a[i];
for (int i=k+;i<=n;i++) a[i]=(1ll*p*a[i-]+1ll*q*i+r)%mod;
dq.clear();
ll ansa=,ansb=;
for (int i=n-m+,j=n;i>=;i--){
while (j>=i){
while (!dq.empty() && dq.back().first<=a[j]) dq.pop_back();
dq.push_back({a[j],j});
j--;
}
while (dq.front().second>=i+m) dq.pop_front();
ansa+=dq.front().first^i;
ansb+=dq.size()^i;
}
cout << ansa << " " << ansb << endl;
}
return ;
}
hdoj6319
C.Dynamic Graph Matching
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6321
题意:给n(<=10)个点的无向图,有m(<=30000)次添加边或删除边的操作。问每次操作后,包含k=1,2,3...n/2条边的匹配数的方案数。
分析:将10个点用二进制位表示状态,总共有2^10种状态。每添加一条边,遍历(1<<n-1)到 0,寻找包含边(u,v)的状态,再累加上之前的方案数即可。同理,删除一条边,就减去之前的方案数。
最后,统一处理答案即可。需预处理出1024里所有二进制状态下包含1的个数,奇数个不符合直接coninue,将偶数个/2加入答案即可。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e9+;
const int N=;
int ans[];
int t,n,m;
ll dp[N];
int nn[N];
int solve(int x){
int res=;
while(x){
if(x&) res++;
x/=;
}
return res;
}
void init(){
for(int i=;i<=(<<)-;i++)
nn[i]=solve(i);
}
int main(){
char ch;int x,y;scanf("%d",&t);
init();
while(t--){
scanf("%d%d",&n,&m);
memset(dp,,sizeof(dp));
dp[]=;
for(int i=;i<=m;i++){
getchar();
scanf("%c %d %d",&ch,&x,&y);
if(ch=='+'){
for(int p=(<<n)-;p>=;p--){
if((p&(<<(x-)))==) continue;
if((p&(<<(y-)))==) continue;
int v=p^(<<(x-));v^=(<<(y-));
if(v>p) continue;
(dp[p]+=dp[v])%=mod;
}
}
else{
for(int p=(<<n)-;p>=;p--){
if((p&(<<(x-)))==) continue;
if((p&(<<(y-)))==) continue;
int v=p^(<<(x-));v^=(<<(y-));
if(v>p) continue;
dp[p]-=dp[v];
dp[p]=(dp[p]%mod+mod)%mod;
}
}
memset(ans,,sizeof(ans));
for(int p=(<<n)-;p>=;p--){
if(nn[p]%) continue;
(ans[nn[p]/]+=dp[p])%=mod;
}
for(int i=;i<=n/;i++){
if(i==) printf("%d",ans[]);
else printf(" %d",ans[i]);
}
printf("\n");
}
}
return ;
}
hdoj6321
D.Euler Function
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6322
题意:给定k,求第k小的数n,使得φ(n)是合数。
分析:欧拉函数:小于n的正整数中与n互质的数的数目(φ(1)=1)。打表。
#include<bits/stdc++.h>
using namespace std;
int main(){
int t,k;scanf("%d",&t);
while(t--){
scanf("%d",&k);
if(k==) printf("5\n");
else printf("%d\n",k+);
}
return ;
}
hdoj6322
F.Grab The Tree
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6324
题意:一棵结点数为n的树,每个点有权值。先手取若干不相邻的点,后手取剩下所有点。得分为所取结点权值的异或和,问最优策略下的结果。
分析:所有结点权值的异或和sum。
sum==0时,两人一定平均。其余情况,只要先手拿走sum二进制下最高位的那个1,那么一定可以取胜。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
int t,n; ll x,y;scanf("%d",&t);
while(t--){
ll cmp=;
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%lld",&x),cmp^=x;
for(int i=;i<n;i++) scanf("%lld%lld",&x,&y);
if(cmp) printf("Q\n");
else printf("D\n");
}
return ;
}
hdoj6324
L.Visual Cube
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6330
题意:打印长a,宽b,高c的立方体。
分析:rt。
(写过最丑最乱的代码,就不粘了)
2018 Multi-University Training Contest 3的更多相关文章
- 2018 Nowcoder Multi-University Training Contest 2
目录 Contest Info Solutions A. run D. monrey G. transform H. travel I. car J. farm Contest Info Practi ...
- 2018 Nowcoder Multi-University Training Contest 1
Practice Link J. Different Integers 题意: 给出\(n\)个数,每次询问\((l_i, r_i)\),表示\(a_1, \cdots, a_i, a_j, \cdo ...
- 2018 Nowcoder Multi-University Training Contest 5
Practice Link A. gpa 题意: 有\(n\)门课程,每门课程的学分为\(s_i\),绩点为\(c_i\),要求最多删除\(k\)门课程,使得gpa最高. gpa计算方式如下: \[ ...
- 2018 Nowcoder Multi-University Training Contest 10
Practice Link J. Rikka with Nickname 题意: 给出\(n\)个字符串,要求依次合并两个串\(s, t\),满足将\(t\)合并到\(s\)中变成\(r\),使得\( ...
- HDU 2018 Multi-University Training Contest 3 Problem A. Ascending Rating 【单调队列优化】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6319 Problem A. Ascending Rating Time Limit: 10000/500 ...
- 2018 Multi-University Training Contest 2
题目链接:2018 Multi-University Training Contest 2 6318 Swaps and Inversions 题意:sum=x*逆序个数+交换次数*y,使sum最小 ...
- 2018 Multi-University Training Contest 1
比赛链接:2018 Multi-University Training Contest 1 6301 Distinct Values 题意:输出一个长度为n的序列,要求满足m个区间的数都不相同,并且字 ...
- hdu 6301 Distinct Values (2018 Multi-University Training Contest 1 1004)
Distinct Values Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- 2018 Multi-University Training Contest 4 Problem J. Let Sudoku Rotate 【DFS+剪枝+矩阵旋转】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6341 Problem J. Let Sudoku Rotate Time Limit: 2000/100 ...
- 2018 Multi-University Training Contest 4 Problem K. Expression in Memories 【模拟】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6342 Problem K. Expression in Memories Time Limit: 200 ...
随机推荐
- restful发布服务
概述 REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式.获得这些表徵致使这些应用程序转变了其状态.随着不断获取资源的表示方式,客户端应用 ...
- python性能监控初试
标 题: python性能监控初试作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990765.html 欢迎转帖 请保持文本完整并注明出处 之前性能统计 ...
- 2018.10.14 NOIP训练 直线(二分答案+st表+切比雪夫距离转化)
传送门 二分答案好题. 这已经是当年普及组模拟时挖的坑了233. 这道题还是很不错的. 考虑把坐标系转个45度再操作. 为了不爆精度可以直接转切比雪夫距离. 然后就直接二分答案. 其中竖线就按二分的答 ...
- 微信JSSDK分享接口
<script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js& ...
- Django入门与实践-第11章:URL 分发(完结)
http://127.0.0.1:8000http://127.0.0.1:8000/boards/1/http://127.0.0.1:8000/boards/2/http://127.0.0.1: ...
- nodejs中如何使用mysql数据库[node-mysql翻译]
nodejs中如何使用mysql数据库 db-mysql因为node-waf: not found已经不能使用,可以使用mysql代替. 本文主要是[node-mysql]: https://www. ...
- 被“1”和“l”给坑了
由于输入法的原因,导致小写的英文字母“L”和阿拉伯数字“1”长得非常像,在写秘钥的时候很容易把看错.由于对方发秘钥的时候给的是图片,而且不太清晰,手动输入的时候把“1”写成“l”了,对了好几遍秘钥也没 ...
- Dalvik虚拟机java方法执行流程和Method结构体分析
Method结构体是啥? 在Dalvik虚拟机内部,每个Java方法都有一个对应的Method结构体,虚拟机根据此结构体获取方法的所有信息. Method结构体是怎样定义的? 此结构体在不同的andr ...
- jvm 中的 ”永生代“
“方法区” 主要存储的信息包括:常量信息,类信息,方法信息,而且是全局共享的(多线程共享): jvm 有多种实现方式(不同的厂商): 并不是所有的jvm 都有永生代的概念: 通常情况下, 很多人把 “ ...
- 用NPOI操作EXCEL--巧妙使用Excel Chart
在NPOI中,本身并不支持Chart等高级对象的创建,但通过l模板的方式可以巧妙地利用Excel强大的透视和图表功能,请看以下例子. 首先建立模板文件,定义两列以及指向此区域的名称“sales”: 创 ...