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的更多相关文章

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

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

  3. 2018 Nowcoder Multi-University Training Contest 5

    Practice Link A. gpa 题意: 有\(n\)门课程,每门课程的学分为\(s_i\),绩点为\(c_i\),要求最多删除\(k\)门课程,使得gpa最高. gpa计算方式如下: \[ ...

  4. 2018 Nowcoder Multi-University Training Contest 10

    Practice Link J. Rikka with Nickname 题意: 给出\(n\)个字符串,要求依次合并两个串\(s, t\),满足将\(t\)合并到\(s\)中变成\(r\),使得\( ...

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

  6. 2018 Multi-University Training Contest 2

    题目链接:2018 Multi-University Training Contest 2 6318 Swaps and Inversions 题意:sum=x*逆序个数+交换次数*y,使sum最小 ...

  7. 2018 Multi-University Training Contest 1

    比赛链接:2018 Multi-University Training Contest 1 6301 Distinct Values 题意:输出一个长度为n的序列,要求满足m个区间的数都不相同,并且字 ...

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

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

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

随机推荐

  1. Luogu 3960 [NOIP2017] 列队 - splay|线段树

    题解 是我从来没有做过的裂点splay... 看的时候还是很懵逼的QAQ. 把最后一列的$n$个数放在一个平衡树中, 有 $n$ 个点 剩下的$n$行数, 每行都开一个平衡树,开始时每棵树中仅有$1$ ...

  2. Laravel 5 如何对部份 URI 禁用 CSRF 验证

    打开中间件 VerifyCsrfToken.php 在其 $except 属性中添加要禁用的 uri,如: api/user/add api/user/* api/*

  3. Javascript中escape()、encodeURI()、encodeURIComponent()的区别

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  4. OSGi karaf scheduler

    OSGi karaf scheduler karaf 中提供了定时任务管理,只需安装 feature:install scheduler 即可,然后在 karaf 容器中发布 org.apache.k ...

  5. windows10 装linux子系统

    http://blog.csdn.net/Yuxin_Liu/article/details/52347898 试了一下,下载太慢,就没继续用,可以用实验楼这个网来玩玩linux

  6. JavaScript的replace方法与正则表达式结合应用讲解

    大家好!!今晚在华软G43*宿舍没什么事做,把javascript中replace方法讲解一下,如果讲得不对或不合理是情理之中的事,因为我不是老鸟,也不是菜鸟,我也不知道我当底是什么鸟??呵~~ re ...

  7. 20155317 王新玮 2016-2017-2 《Java程序设计》第9周学习总结

    20155317 王新玮 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以 ...

  8. 2018.09.09 poj2949Word Rings(01分数规划+spfa判环)

    传送门 这题要先巧妙的转化一下. 对于每个字符串,我们把头尾的两个小字符串对应的点连边,边权是这个字符串的长度. 这样最多会出现26*26个点. 这个时候就只用求出边权和跟边数的最大比值了. 这个显然 ...

  9. int最大值+1为什么是-2147483648最小值-1为什么是2147483647

    今天一个新手学编程就问到这个问题,很多人第一次学编程肯定会遇到这个问题,大部分都知道是溢出之类的,用源码和补码就很容易说明 int i = -2147483648 ;这是不允许的 VS里报的错 err ...

  10. UVa 11732 "strcmp()" Anyone? (左儿子右兄弟前缀树Trie)

    题意:给定strcmp函数,输入n个字符串,让你用给定的strcmp函数判断字符比较了多少次. 析:题意不理解的可以阅读原题https://uva.onlinejudge.org/index.php? ...