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. linux永久关闭防火墙

  2. c++之boost share_ptr

    转载:https://www.cnblogs.com/welkinwalker/archive/2011/10/20/2218804.html

  3. 2018.08.22 NOIP模拟 shop(lower_bound+前缀和预处理)

    Shop 有 n 种物品,第 i 种物品的价格为 vi,每天最多购买 xi 个. 有 m 天,第 i 天你有 wi 的钱,你会不停购买能买得起的最贵的物品.你需要求出你每天会购买多少个物品. [输入格 ...

  4. 1000多块整个插板,arduino + android 蓝牙插板的实现--屌丝版

       需求描述 儿子有一堆充电玩具,基本上都是锂电池,经常插上去充电忘了到时拔下来,所以需要一块能设置接通时间的插板以保障电池的安全.   硬件设计: 首先需要一块插板,接着需要一个继电器,然后采用a ...

  5. RAC环境数据库重启实例

    1.重启之前最好先看一下节点信息和运行状态 可以通过srvctl status database -d 数据库名 //查看节点信息 Crs_stat //查看节点状态 可以看到数据节点它由两个实例组成 ...

  6. python类的继承-1

    #!/usr/bin/python3 #类定义 class people: #定义基本属性 name = '' age = 0 #定义私有属性,私有属性在类外部无法直接进行访问 __weight = ...

  7. 对call() apply() 方法的简单理解

    真的是非常简单的理解,我知道的并不多,在网上查找了很多的资料,还是只能了解一点皮毛,下面来整理出来,方便以后深入的去学习,也是对目前知道的知识点的巩固. 整理一些网上的经典解答: 1.一句话区分cal ...

  8. public class 和class 的区别

     Java在编写类的时候可以使用两种方式定义类:     public class定义类:    class定义类:    如果一个类声明的时候使用了public class进行了声明,则类名称必须与 ...

  9. IP之ALTDDIO_in仿真

    需要添加altera_mf库,才可以仿真. 上升沿输出,把前一个时钟的数据输出来. `timescale 1 ns/ 1 ns; module altddio_in_ip_tb; reg rst; r ...

  10. wadl 的自动生成(cxf版本2.7.6)

    参考文档 http://cxf.apache.org/docs/jaxrs-services-description.html 获取项目 git@github.com:witaste/cxf-2.7. ...