HDU 全国多校第四场 题解
题解
A AND Minimum Spanning Tree
参考代码:
- #include<bits/stdc++.h>
- #define maxl 200010
- using namespace std;
- int n,ans1;
- int mi[];
- int ans[maxl];
- inline void prework()
- {
- scanf("%d",&n);
- }
- inline int find(int x)
- {
- for(int j=;j<=;j++)
- if((x&mi[j])==)
- return mi[j];
- }
- inline void mainwork()
- {
- ans1=;int x;
- for(int i=;i<=n;i++)
- {
- if(i&)
- {
- x=find(i);
- if(x<=n)
- ans[i]=x;
- else
- ans1++,ans[i]=;
- }
- else
- ans[i]=;
- }
- }
- inline void print()
- {
- printf("%d\n",ans1);
- for(int i=;i<=n;i++)
- printf("%d%c",ans[i],(i==n)?'\n':' ');
- }
- int main()
- {
- mi[]=;
- for(int i=;i<=;i++)
- mi[i]=mi[i-]*;
- int t;
- scanf("%d",&t);
- for(int i=;i<=t;i++)
- {
- prework();
- mainwork();
- print();
- }
- return ;
- }
B Colored Tree
unsolved.
C Divide the Stones
题解:https://blog.csdn.net/liufengwei1/article/details/97970041
- #include<bits/stdc++.h>
- #define maxl 100010
- using namespace std;
- long long k,n,sum,t;
- long long dy[maxl];
- long long last[maxl],to[maxl];
- long long tmp[maxl];
- bool flag;
- vector <long long> ans[maxl];
- inline void prework()
- {
- scanf("%lld%lld",&n,&k);
- sum=1ll*n*(n+)/;
- for(long long i=;i<=k;i++)
- ans[i].clear();
- }
- inline void mainwork()
- {
- flag=false;
- if(sum%k!=)
- return;
- sum=sum/k;
- long long id;
- t=n/k;
- if(t%==)
- {
- long long id=;
- for(long long i=;i<=k;i++)
- {
- for(long long j=;j<=t/;j++)
- {
- ans[i].push_back(id);
- ans[i].push_back(n-id+);
- id++;
- }
- }
- flag=true;
- }
- else
- {
- if(n/k==)
- {
- if(n==)
- {
- ans[].push_back();
- flag=true;
- }
- return;
- }
- for(long long i=;i<=k/+;i++)
- {
- dy[i]=k/+i;
- to[i]=(i-)*+;
- }
- for(long long i=k/+;i<=k;i++)
- {
- dy[i]=i-(k/)-;
- to[i]=(i-(k/)-)*;
- }
- for(long long i=;i<=k;i++)
- ans[i].push_back(i),last[i]=i,tmp[i]=i;
- long long num;
- for(long long i=;i<n/k;i++)
- {
- for(long long j=;j<=k;j++)
- {
- num=dy[last[j]]+(i-)*k;
- ans[j].push_back(num);
- last[j]=to[last[j]];
- tmp[j]+=num;
- }
- }
- for(long long i=;i<=k;i++)
- ans[i].push_back(sum-tmp[i]);
- flag=true;
- }
- }
- inline void print()
- {
- if(flag)
- {
- puts("yes");
- long long l;
- for(long long i=;i<=k;i++)
- {
- for(long long j=;j<n/k;j++)
- printf("%lld%c",ans[i][j],(j==(n/k-))?'\n':' ');
- }
- }
- else
- puts("no");
- }
- int main()
- {
- long long t;
- scanf("%lld",&t);
- for(long long i=;i<=t;i++)
- {
- prework();
- mainwork();
- print();
- }
- return ;
- }
D Enveloping Convex
unsolved.
E Good Numbers
unsolved.
F Horse
unsolved.
G Just an Old Puzzle
题解:百度“15难题”
参考代码
- #include<bits/stdc++.h>
- using namespace std;
- int ans;
- int a[];
- int x[];
- inline void prework()
- {
- for(int i=;i<=;i++)
- {
- scanf("%d",&a[i]);
- if(a[i]==)
- {
- a[i]=;
- ans=x[i];
- }
- }
- }
- inline void mainwork()
- {
- for(int i=;i<=;i++)
- {
- for(int j=i+;j<=;j++)
- if(a[j]<a[i])
- ans++;
- }
- }
- inline void print()
- {
- if(ans&)
- puts("No");
- else
- puts("Yes");
- }
- int main()
- {
- x[]=;x[]=;x[]=;x[]=;
- x[]=;x[]=;x[]=;x[]=;
- int t;
- scanf("%d",&t);
- for(int cas=;cas<=t;cas++)
- {
- prework();
- mainwork();
- print();
- }
- return ;
- }
H K-th Closest Distance
题解:主席树+二分 https://blog.csdn.net/liufengwei1/article/details/97948584
参考代码
- #include<bits/stdc++.h>
- #define maxl 100010
- using namespace std;
- const int nn=1e6;
- int n,m,tot,ans;
- int rt[maxl],a[maxl];
- struct node
- {
- int ls,rs,sum;
- }tree[maxl**];
- inline void insert(int num,int &x,int l,int r)
- {
- tree[++tot]=tree[x];x=tot;
- ++tree[x].sum;
- if(l==r) return;
- int mid=(l+r)>>;
- if(num<=mid)
- insert(num,tree[x].ls,l,mid);
- else
- insert(num,tree[x].rs,mid+,r);
- }
- inline void prework()
- {
- scanf("%d%d",&n,&m);
- for(int i=;i<=n;i++)
- scanf("%d",&a[i]);
- tree[].ls=tree[].rs=tree[].sum=;
- rt[]=;
- tot=;
- for(int i=;i<=n;i++)
- {
- rt[i]=rt[i-];
- insert(a[i],rt[i],,nn);
- }
- }
- inline int query(int i,int j,int l,int r,int i1,int j1)
- {
- if(i1==l && j1==r)
- return tree[j].sum-tree[i].sum;
- int mid=(i1+j1)>>,ret;
- if(r<=mid)
- ret=query(tree[i].ls,tree[j].ls,l,r,i1,mid);
- else if(l>mid)
- ret=query(tree[i].rs,tree[j].rs,l,r,mid+,j1);
- else
- {
- ret=query(tree[i].ls,tree[j].ls,l,mid,i1,mid);
- ret+=query(tree[i].rs,tree[j].rs,mid+,r,mid+,j1);
- }
- return ret;
- }
- inline bool jug(int l,int r,int mid,int p,int k)
- {
- int up=min(p+mid,nn),lo=max(,p-mid);
- int sum=query(rt[l-],rt[r],lo,up,,nn);
- if(sum<k)
- return false;
- else
- return true;
- }
- inline void mainwork()
- {
- ans=;int up,lo,p,k,l,r,mid;
- for(int i=;i<=m;i++)
- {
- scanf("%d%d%d%d",&lo,&up,&p,&k);
- lo^=ans;up^=ans;p^=ans;k^=ans;
- l=;r=nn;
- while(l+<r)
- {
- mid=(l+r)>>;
- if(!jug(lo,up,mid,p,k))// <k
- l=mid;
- else
- r=mid;
- }
- if(jug(lo,up,l,p,k))
- ans=l;
- else
- ans=l+;
- printf("%d\n",ans);
- }
- }
- inline void print(){}
- int main()
- {
- int t;
- scanf("%d",&t);
- for(int i=;i<=t;i++)
- {
- prework();
- mainwork();
- print();
- }
- return ;
- }
I Linear Functions
unsolved.
J Minimal Power of Prime
参考代码
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long LL;
- const int size=1e6+;
- double eps=1e-;
- int p[size];bool prime[size];
- int mpri[size];
- int tot=;
- void init()
- {
- for(int i=;i<size;i++) prime[i]=true;
- for(int i=;i<size;i++)
- {
- if(prime[i])
- {
- p[++tot]=i;
- mpri[i]=i;
- }
- for(int j=;j<=tot&&p[j]*i<size;j++)
- {
- prime[i*p[j]]=false;mpri[i*p[j]]=p[j];
- if(i%p[j]==) break;
- }
- }
- }
- int main()
- {
- init();
- int t;
- long long x;
- scanf("%d",&t);
- while(t--)
- {
- scanf("%lld",&x);
- int cnt=;
- int ans=;
- if(x<size){
- int ps=mpri[x];
- while(x!=)
- {
- do x/=ps,cnt++;
- while(mpri[x]==ps);
- ps=mpri[x];
- ans=min(ans,cnt);
- }
- printf("%d\n",ans);
- continue;
- }
- bool flag=false;
- for(int i=;i<=tot;i++)
- {
- cnt=;
- if(x%p[i]==)
- {
- do x/=p[i],cnt++;
- while(x%p[i]==);
- }
- if(cnt==)
- {
- puts("");
- flag=true;
- break;
- }
- }
- if(flag) continue;
- LL sq=sqrt(x)+eps;
- if(sq*sq==x)
- {
- printf("2\n");
- }
- else
- {
- puts("");
- }
- }
- }
HDU 全国多校第四场 题解的更多相关文章
- HDU 多校第四场题解
对于 D 题的原题意,出题人和验题人赛前都没有发现标算存在的问题,导致了许多选手的疑惑和时间的浪费,在此表示真诚的歉意! 预计难度分布: Easy - DJKL, Medium - ABCEG, Ha ...
- 2019HDU多校第四场题解
1001.AND Minimum Spanning Tree 传送门:HDU6614 题意:给你一个又n个点的完全图,点编号从1~n,每条边的权值为被连接的两点编号按位与后的值.现在要你找到最小生成树 ...
- HDU 4635 多校第四场 1004 强联通
我还有什么好说,还有什么好说...... 我是SBSBSBSBSBSBSBSBSBSBSBSBBSBSBSBSBSBSBSBSBS........................ 题意 思路什么的都不 ...
- HDU暑假多校第四场J-Let Sudoku Rotate
一.题意 Sudoku is a logic-based, combinatorial number-placement puzzle, which is popular around the wor ...
- 2018 HDU多校第四场赛后补题
2018 HDU多校第四场赛后补题 自己学校出的毒瘤场..吃枣药丸 hdu中的题号是6332 - 6343. K. Expression in Memories 题意: 判断一个简化版的算术表达式是否 ...
- 牛客多校第四场sequence C (线段树+单调栈)
牛客多校第四场sequence C (线段树+单调栈) 传送门:https://ac.nowcoder.com/acm/contest/884/C 题意: 求一个$\max {1 \leq l \le ...
- HDU 5768Lucky7(多校第四场)容斥+中国剩余定理(扩展欧几里德求逆元的)+快速乘法
地址:http://acm.hdu.edu.cn/showproblem.php?pid=5768 Lucky7 Time Limit: 2000/1000 MS (Java/Others) M ...
- [2019HDU多校第四场][HDU 6617][D. Enveloping Convex]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6617 题目大意:给出一凸包\(P\),求最小的与\(P\)相似且对应边平行的多边形,使得题目给出的\( ...
- 【HDU】4092 Nice boat(多校第四场1006) ——线段树 懒惰标记
Nice boat Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) To ...
随机推荐
- jquery翻页turnjs简单实例
jquery翻页turnjs简单实例<pre><div id="flipbook"> <div class="hard" styl ...
- (二十一)golang--字符串中的函数
golang中ascii对应的字符占一个字节,而汉字占三个字节. (1)统计字符串的长度len (2)字符串遍历,同时处理有中文的问题r:=[]rune(str) (3)字符串转整数:n,err:= ...
- tornado的使用-参数篇
tornado的使用-参数篇
- spark集群搭建(三台虚拟机)——系统环境搭建(1)
!!!该系列使用三台虚拟机搭建一个完整的spark集群,集群环境如下: virtualBox5.2.Ubuntu14.04.securecrt7.3.6_x64英文版(连接虚拟机) jdk1.7.0. ...
- java编程思想第四版第十四章 类型信息习题
fda dfa 第三题u package net.mindview.typeinfo.test4; import java.util.ArrayList; import java.util.Array ...
- Go 语言优秀资源整理,为项目落地加速🏃
最后更新于2019.11.22 Go 语言优秀资源整理,为项目落地加速
- react-router重定向
① ②通过this.props重定向
- Redis高可用演进(一)
原文链接:http://www.cnblogs.com/chenty/p/5152878.html 最近整理Redis,对sentinel有了更深入的理解,特地总结如下 1.主从Redis 主从red ...
- c# 为什么会出现死锁?多线程死锁怎么解决
出现死锁必须满足以下几个条件: 1.互斥条件:该进程拥有的资源,其他进程只能等待其释放. 2.不剥夺条件:该进程拥有的资源只能由它自己来释放. 3.请求和保持条件:请求其他的资源,同时自己拥有的资源又 ...
- django ListView
context_object_name = 'posts'. The template default name is ListView 'object_list' from .models impo ...