题解:

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

题解:签到题。

代码:

#include<bits/stdc++.h>
using namespace std; int main(){
long long a,b,c;
while(cin>>a>>b>>c){
cout<<a*b%c<<endl;
}
}

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

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

代码:

#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <vector> 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<<ksj(a,b)<<endl;
}
}
int main()
{
read_in();
return 0;
}

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

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

代码:

#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=200050;
vector<int> son[maxn],w[maxn];
bool vis[maxn];
int f[maxn];
int bfs(int root)
{
int i,j,k;
int ans=root,maxx=0;
queue<int> 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<son[root].size();i++)//À©Õ¹Â·¾¶
{
if(vis[son[root][i]]==0)//È¥ÖØ
{
q.push(son[root][i]);
vis[son[root][i]]=1;
f[son[root][i]]=f[root]+w[root][i];
if(maxx<f[son[root][i]])
{
maxx=f[son[root][i]];
ans=son[root][i];//ansÊÇĿǰ¾àÀëROOT×îÔ¶µÄ½Úµã¡£
}
}
}
}
return ans;
}
int solve(int root)
{
int u,v;
u=bfs(root);
v=bfs(u);
return f[v];
} int main()
{
int i,j,k,n,m;
int x1,x2,l,u;
scanf("%d",&n);
for(i=0;i<n;i++)
{
son[i].clear();
w[i].clear();
}
for(i=0;i<n-1;i++)
{
scanf("%d%d%d",&x1,&x2,&l);
son[x1].push_back(x2);w[x1].push_back(l);
son[x2].push_back(x1);w[x2].push_back(l);
}
double ans=solve(1)/2.0;
printf("%0.1f\n",ans);
return 0;
}

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

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

http://blog.csdn.net/oiljt12138/article/details/51174560

代码:

#include<iostream>
#include<cstdio>
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<<ans;
return 0;
}

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

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

代码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <map> #define maxlongint 2147483647
#define pb push_back
#define mp make_pair
#define LL long long using 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<B.w;
} int Findset(int x)
{
if(fa[x].where==x)return x;else return Findset(fa[x].where);
} int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=n;i++)scanf("%I64d",&like[i]);
for(int i=1;i<=m;i++)
scanf("%d%d%I64d",&key[i].a,&key[i].b,&key[i].w);
sort(key+1,key+m+1,cmp);
key[0].a=0;key[0].b=0;key[0].w=-100000000;
key[m+1].a=0;key[m+1].b=0;key[m+1].w=-100000000;
LL Minhz=-1,Maxhz=key[m].w+1,ans=0;
for(int i=1;i<=m;i++)
if(key[i].w!=key[i-1].w)
{
for(int j=1;j<=n;j++)
{
fa[j].where=j;
fa[j].cnt=1;
}
int j=i;
LL ans0=like[1]*n;
while(j<=m)
{
if(key[j].w-key[i].w>=Maxhz-Minhz)break;
int j0=j;
while(key[j0].w==key[j].w)j0++;
for(int x=j;x<j0;x++)
{
int s1=Findset(key[x].a),s2=Findset(key[x].b);
if(s1!=s2)
{
int X0=fa[s1].cnt,Y0=fa[s2].cnt;
ans0+=(like[X0+Y0]-like[X0]-like[Y0]);
fa[s1].cnt=X0+Y0;
fa[s2].cnt=X0+Y0;
if(s1>s2)fa[s1].where=s2;else fa[s2].where=s1;
if((ans0>=k)&&((Maxhz-Minhz>key[j].w-key[i].w)||(ans<k)))
{
ans=ans0;
Maxhz=key[j].w;
Minhz=key[i].w;
}
}
}
j=j0;
}
}
if(ans>=k)
printf("%lld\n",Maxhz-Minhz);
else
printf("T_T\n");
// system("pause");
return 0;
}

喵哈哈村的魔法考试 Round #19 (Div.2) 题解的更多相关文章

  1. 喵哈哈村的魔法考试 Round #2 (Div.2) 题解

    喵哈哈村的魔法考试 Round #2 (Div.2) 题解 A.喵哈哈村的战争 题解: 这道题就是for一遍,统计每个村子的战斗力的和,然后统计哪个村子的战斗力和大一点就好了. 唯一的坑点,就是这道题 ...

  2. 喵哈哈村的魔法考试 Round #1 (Div.2) 题解

    喵哈哈村的魔法考试 Round #1 (Div.2) 题解 特别感谢出题人,qscqesze. 也特别感谢测题人Xiper和CS_LYJ1997. 没有他们的付出,就不会有这场比赛. A 喵哈哈村的魔 ...

  3. 喵哈哈村的魔法考试 Round #7 (Div.2) 题解

    喵哈哈村的魔法考试 Round #7 (Div.2) 注意!后四道题来自于周日的hihocoder offer收割赛第九场. 我建了个群:欢迎加入qscoj交流群,群号码:540667432 大概作为 ...

  4. 喵哈哈村的魔法考试 Round #1 (Div.2) 题解&源码(A.水+暴力,B.dp+栈)

    A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05   最后更新: 2017年2月21日 20:06   时间限制: 1000ms   内存限制: 128M 描述 传说喵哈哈村有三种神 ...

  5. 喵哈哈村的魔法考试 Round #14 (Div.2) 题解

    喵哈哈村的四月半活动(一) 题解: 唯一的case,就是两边长度一样的时候,第三边只有一种情况. #include <iostream> #include <cstdio> # ...

  6. 喵哈哈村的魔法考试 Round #4 (Div.2) 题解

    有任何疑问,可以加我QQ:475517977进行讨论. A 喵哈哈村的嘟嘟熊魔法(1) 题解 这道题我们只要倒着来做就可以了,因为交换杯子是可逆的,我们倒着去模拟一遍就好了. 有个函数叫做swap(a ...

  7. 喵哈哈村的魔法考试 Round #20 (Div.2) 题解

    题解: A 喵哈哈村的跳棋比赛 题解:其实我们要理解题意就好了,画画图看看这个题意.x<y,那么就交换:x>y,那么x=x%y. 如果我们经过很多次,或者y<=0了,那么就会无限循环 ...

  8. 喵哈哈村的魔法考试 Round #18 (Div.2) 题解

    喵哈哈村的古怪石碑(一) 题解:暴力check一下是等比数列还是等差数列,然后输出答案即可.注意如果数据范围是1e9的话,就要快速幂了. 代码: #include <cstdio> #in ...

  9. 喵哈哈村的魔法考试 Round #13 (Div.2) 题解

    喵哈哈村的木星传说(一) 旋转90°,找找规律就知道(x,y)->(n-1-y,x) 然后输出就好了. #include<bits/stdc++.h> using namespace ...

随机推荐

  1. mybatis异常分析jdbcType

    Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: Error setti ...

  2. freeswitch用户整合(使用mysql数据库的用户表)

    转:freeswitch用户整合(使用mysql数据库的用户表) freeswitch是一款强大的voip服务器,可以语音和视频.但是它默认是采用/directory文件夹下的xml来配置用户的,对于 ...

  3. 如何在DOS窗口复制和粘贴命令

    在键盘上按下windows+R键,打开运行窗口. 在“打开”处输入cmd,并按下enter键,打开DOS窗口. 把鼠标移动到DOS窗口标题处,单击鼠标右键,选择属性. 把编辑选项处的“快速编辑模式”勾 ...

  4. OneNET麒麟座应用开发之八:采集大气压力等环境参数

    采集大气压力和温度也是核算大气标准状况下的各种数据的必须参数,为此我们必须知道压力和温度才能计算标准状况下的各种参数,于此我们需要一个既能检测压力也能检测温度的元件. 1.硬件概述 MS5837压力传 ...

  5. Elasticsearch创建索引和映射结构详解

    前言 这篇文章详细介绍了如何创建索引和某个类型的映射. 下文中[address]指代elasticsearch服务器访问地址(http://localhost:9200). 1       创建索引 ...

  6. 【mysql】autocommit=0后,commit, rollback无效

    之前在[mysql]MySQLdb中的事务处理中用autocommit和commit()以及rollback()实现了事务处理. 但后来,用同样的代码在另一个数据库中运行却失败了.找了一个下午的原因. ...

  7. 并发研究之Java内存模型(Java Memory Model)

    Java内存模型JMM java内存模型定义 上一遍文章我们讲到了CPU缓存一致性以及内存屏障问题.那么Java作为一个跨平台的语言,它的实现要面对不同的底层硬件系统,设计一个中间层模型来屏蔽底层的硬 ...

  8. python 全栈开发,Day85(Git补充,随机生成图片验证码)

    昨日内容回顾 第一部分:django相关 1.django请求生命周期 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这 ...

  9. Pycharm里面使用PIL库之后,为什么调用Image的方法不能弹出代码提示,怎样能让代码提示弹出?

    之前也碰到了这个问题,安装了pillow后没有代码提示,最后查了半天,发现问题原来非常简单,解决方法也很无厘头. 之所以没有代码提示,仅仅是因为Pycharm没法判断Image.open()返回的对象 ...

  10. Codeforces 830C Bamboo Partition (看题解)

    Bamboo Partition 列公式, 整除分块, 想不到, 好菜啊. #include<bits/stdc++.h> #define LL long long #define fi ...