博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
喵哈哈村的魔法考试 Round #19 (Div.2) 题解
阅读量:6549 次
发布时间:2019-06-24

本文共 2456 字,大约阅读时间需要 8 分钟。

题解:

喵哈哈村的魔力源泉(1)

题解:签到题。

代码:

#include
using namespace std;int main(){ long long a,b,c; while(cin>>a>>b>>c){ cout<
<

喵哈哈村的魔力源泉(2)

题解:首先快速幂是来处理次方的问题,那么我们模仿快速幂,写一个快速加即可,这样我们每次乘以2,就不会爆longlong了

代码:

#include 
#include
#include
#include
#include
#include
#include
#include
using namespace std;long long a,b,p;long long ksj(long long a,long long b){ if(b==0)return 0; if(b==1)return a%p; long long sb=ksj(a,b/2); sb=(sb+sb)%p; if(b&1) return (sb+a)%p; else return sb;}void read_in(){ while(scanf("%lld%lld%lld",&a,&b,&p)!=EOF){ cout<
<

喵哈哈村的魔法源泉(3)

题解:答案实际上就是树的直径的一半,关于树的直径,这个自己百度吧~

代码:

#include
#include
#include
#include
#include
#include
#include
using namespace std;const int maxn=200050;vector
son[maxn],w[maxn];bool vis[maxn];int f[maxn];int bfs(int root){int i,j,k;int ans=root,maxx=0;queue
q;memset(vis,0,sizeof(vis));memset(f,0,sizeof(f));q.push(root);vis[root]=1;f[root]=0;while(!q.empty()){ root=q.front(); q.pop(); for(i=0;i

喵哈哈村的魔力源泉(4)

题解:单调队列优化的dp,这儿有个链接比我讲得清楚。。。

代码:

#include
#include
using namespace std;struct node{ long long s; int n;}q[1000010];int a,n,m;long long s[1000010],ans;int h,t;int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("%d",&a); s[i]=a+s[i-1]; } q[0].s=0;q[0].n=0; for(int i=1;i<=n;i++) { long long r=s[i]; r-=q[t].s; ans=max(ans,r); while(t<=h&&q[h].s>s[i])h--; q[++h].s=s[i]; q[h].n=i; while(q[t].n<=i-m)t++; } cout<

喵哈哈村的魔力源泉(5)

题解:类似two pointer去做,维护最小边,然后去枚举最大边。用带权并查集去维护每个集合的边的信息,如果所有点都大于等于了k,那么就输出答案即可。

代码:

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#define maxlongint 2147483647#define pb push_back#define mp make_pair#define LL long longusing namespace std;struct dwell{ int a,b; LL w;} key[5010];struct bz{ int where,cnt;} fa[1010];LL like[1010];LL k;int n,m;bool cmp(dwell A,dwell B){ return A.w
=Maxhz-Minhz)break; int j0=j; while(key[j0].w==key[j].w)j0++; for(int x=j;x
s2)fa[s1].where=s2;else fa[s2].where=s1; if((ans0>=k)&&((Maxhz-Minhz>key[j].w-key[i].w)||(ans
=k) printf("%lld\n",Maxhz-Minhz); else printf("T_T\n");// system("pause"); return 0;}

转载地址:http://eguco.baihongyu.com/

你可能感兴趣的文章
POJ 3468 A Simple Problem with Integers(线段树 区间更新)
查看>>
安装apr-1.6.3报错[cannot remove `libtoolT’: No such file or directory]解决方法
查看>>
Git 使用教程
查看>>
Log4j_学习_03_自己动手封装log工具
查看>>
Redis的各项功能解决了哪些问题?
查看>>
FastAdmin 极速后台管理框架 1.0.0.20190301_beta
查看>>
Selenium2 WebDriver 启动Chrome, Firefox, IE 浏览器、设置profile&加载插件
查看>>
删除LVM步骤
查看>>
Zookeeper客户端
查看>>
linux常用指令
查看>>
Servlet Demo
查看>>
Struts2中的<s:action>标签
查看>>
Java中取某一个范围的随机数
查看>>
一条复杂SQL实现思路
查看>>
我的友情链接
查看>>
android app 退出时提示确认
查看>>
win10 配置
查看>>
java 编译100个范例
查看>>
Session Cookie ServletContext
查看>>
单点登录SSO
查看>>