官方题解:

http://www.cnblogs.com/qscqesze/p/6418555.html#3623453

喵哈哈村的魔法石

描述

传说喵哈哈村有三种神奇的魔法石:第一种魔法石叫做人铁石,拥有A的能量;第二种魔法石叫做地冈石,拥有B的能量;而第三种,则是最神奇的天玄石,拥有无可比拟的C的能量!

但是有一天,沈宝宝太调皮了,把一颗天玄石玩丢了……

“这可玩大发了,这样我会被天行廖责备的。”沈宝宝悲伤的说到,“怎么办呢?”

这时候沈宝宝望了望窗外的飞过的白鸽,突然急中生智,想到了一个办法:干脆就用人铁石和地冈石把天玄石凑出来吧!

“只要我拿若干个人铁石,若干个地冈石,他们的能量之和,恰好加起来等于天玄石所拥有的能量。然后再把这些石头粘在一起,那么由若干个石头的组成的整体,我不就可以看做是一个天玄石了吗?“

沈宝宝愈发觉得自己机智。

所以现在有一个问题摆在你的面前了,给你A,B,C,请判断是否存在两个大于等于0的整数x,y满足Ax+By=C.

输入

第一行一个T,表示有T组测试数据。
接下来T行,每行三个整数a,b,c,分别表示三块石头的能量值。
满足(1<=T<=100,1 ≤ a, b ≤ 100, 1 ≤ c ≤ 10 000)

输出

对每一组测试答案均需要输出结果,如果可行的话,输出Yes,否则输出No

样例输入1 复制

2
1 2 3
4 6 15
样例输出1

Yes
No
解法:刚刚开始认为是扩展欧几里得,结果姿势不够不会写,后来发现我们先设定b=0,那么答案x=c/a,然后根据这个x为界限,从0开始寻找有关b的解
 #include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin >> T;
while(T--)
{
int a,b,c;
cin>>a>>b>>c;
int y=;
int flag=;
int x=c/a;
for(int i=;i<=x;i++)
{
if((c-a*i)%b==)
{
flag=;
break;
}
}
if(flag)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
}
return ;
}

喵哈哈村的括号序列

描述

喵哈哈村的括号序列和外界的括号序列实际上是一样的。

众所周知"()"这样的,就是一个标准的括号序列;"()()()()"这样也是括号序列;“((()))()”这样也是一个合法的括号序列。但是"((("这样,就不是一个合法的括号序列了。

现在沈宝宝非常好奇,给你一个字符串,请从中找出最长的合法括号序列出来。

不知道你能找到吗?

输入

第一行一个T,表示有T组数据。
接下来T行,每一行都是一个字符串。
保证字符串的长度小于100000。
而且字符串中保证只会出现"(",")"这两种字符之一。
1<=T<=10

输出

对于每一组测试数据,输出最长的合法括号序列的长度。

样例输入1 复制

2
)((())))(()())
)(
样例输出1

6
0
解法:用栈一定是没错的啦,我们遍历判断括号匹配情况,并记录其位置,如果匹配成功就从栈中删除,否则留下
比如
) ( ( ( ) ) ) ) ( ( ) ( ) )
0 7
最后计算哪段最长就行了
 #include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin >> T;
while(T--)
{
string a;
cin >> a;
stack<int> s;
s.push(-);
int maxn = -;
for( int i = ; i < a.length(); i++ )
{
if(s.top()==-)
{
s.push(i);
continue;
}
else if( a[s.top()] == '(' and a[i] == ')')
{
s.pop();
}
else
{
s.push(i);
}
}
int tmp;
int q = a.length();
while( !s.empty() )
{
tmp = s.top();
// cout<<tmp<<endl;
s.pop();
maxn = max (abs(tmp-q),maxn);
q = tmp;
}
cout << maxn- << endl;
}
return ;
}

喵哈哈村的魔法石(II)

描述

沈宝宝的天玄石做的又丑又难看,戴尔廖实在是看不下去了,于是就出手帮助了他。

戴尔廖从怀中掏出了很多块神奇的石头,这些石头都是矿石结晶。每颗矿石结晶拥有着A[i]的人之精华,以及B[i]的地之精华。

戴尔廖缓缓道:“传说中,只要你拥有的石头的人之精华的和为SA,你拥有的石头的地之精华的和为SB,且SA除以SB恰好等于C,拿这些石头去配比,就能得到完美的天玄石!”

沈宝宝一听,高兴的跳了起来!

戴尔廖说:“不急不急,这些石头我可不能白白给你,第i颗石头,你需要付出C[i]的代价,我才会给你。”

这时,沈宝宝犯难了,沈宝宝究竟最少需要付出多少的代价,才能配比得到天玄石呢?

输入

第一行一个T,表示有T组测试数据。
接下来每组数据:
第一行为两个整数n和C,表示戴尔廖拥有的矿石结晶个数,以及配比需要的比值C。
接下来n行,每行三个整数,A[i],B[i],C[i],分别表示人之精华、地之精华和购买石头需要的代价。

数据满足:
1<=T<=10
1<=n<=100
1<=A[i],B[i]<=10
1<=c[i]<=10000
1<=C<=100
保证所有数据均为整数。

输出

对于每组数据,输出最少合成天玄石的代价,如果不能合成,输出“ShenBaoBao GG”

样例输入1 复制

2
1 1
1 2 1
3 2
3 2 2
3 1 3
3 1 6
样例输出1

ShenBaoBao GG
5
解法:

dp[i][j][z]中i表示已经考虑了第i种配方,j表示已经配了a的容量,z表示已经配了b的容量,先初始化他们的最大值,dp[0][0][0]=0

dp[i+1][j][z]=min(dp[i][j][z],dp[i+1][j][z]) 没有加i配方进去

dp[i+1][j+a[i]][z+b[i]]=min(dp[i+1][j+a[i]][z+b[i]],dp[i][j][z]+c[i]) 加了配方i进去

#include <bits/stdc++.h>
using namespace std;
const int maxn = ;
int a[maxn],b[maxn],c[maxn];
int ans,n,k;
int x,y;
int Ma,Mb;
int cn;
int inf=(<<);
int dp[][][];
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>n>>cn;
for(int i=; i<n; i++)
{
cin>>a[i]>>b[i]>>c[i];
}
for(int i=; i<=; i++)
{
for(int j=; j<=; j++)
{
for(int z=; z<=; z++)
{
dp[i][j][z]=inf;
}
}
}
dp[][][]=;
for(int i=; i<n; i++)
{
for(int j=; j<=; j++)
{
for(int z=; z<=; z++)
{
if(dp[i][j][z]==inf) continue;
dp[i+][j][z]=min(dp[i][j][z],dp[i+][j][z]);
dp[i+][j+a[i]][z+b[i]]=min(dp[i+][j+a[i]][z+b[i]],dp[i][j][z]+c[i]);
}
}
}
int Minx=inf;
for(int i=; i<=; i++)
{
for(int j=; j<=; j++)
{
if(i%j==&&i/j==cn)
{
Minx=min(Minx,dp[n][i][j]);
}
}
}
if(Minx==inf)
{
cout<<"ShenBaoBao GG"<<endl;
}
else
{
cout<<Minx<<endl;
}
}
return ;
}

喵哈哈村的赛马比赛

描述

喵哈哈村一年一度的赛马比赛要开始了!

沈宝宝和戴尔廖由于达成了某笔交易,成了好朋友,于是他们相约一起去看赛马比赛。

哦豁,这两个人来早了,赛马比赛并没有开始。

于是他们俩决定出一个题,来打发时间:

假设赛马场上有n只马儿,第i只马儿的起点在第i米的位置,这些马儿都会朝着同一个方向奔跑。

每只马儿的速度都不一样,而且大家都不知道这些马儿的速度是多少。

这些马儿将会驰骋在一个无限长的赛道上面,如果马儿A跑过了马儿B,那么马儿B就会被淘汰出局。

现在问题来了,请问考虑所有的情况,场上最后,期望将会剩下多少匹马儿在驰骋呢?

输入

第一行T,表示一共有T组测试数据。
接下来T行,每一行一个整数n,表示比赛一开始马儿的数量。
保证
1<=n<=1000
1<=T<=1000

输出

对于每组测试数据,输出答案,答案需要保留四位。

样例输入1 复制

2
1
2
样例输出1

1.0000
1.5000
解法:瞎猜(并不是)
证明:算每头马对答案的贡献,不妨设有f(i),考虑一个排列就是他们之间的速度关系,第i头马对答案有贡献当且仅当前面的马速度都比他小,那么方案数就是((i-1)!(n-i)!C(n,i))/(n!),化简之后,就是1/i。
#include <bits/stdc++.h>
using namespace std;
const int maxn = ;
int a[maxn],b[maxn],c[maxn];
int ans,n,k;
int x,y;
int Ma,Mb;
int cn;
int inf=(<<);
int dp[][][];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
double sum=0.0;
for(int i=;i<=n;i++)
{
sum+=(double)/i;
}
printf("%.4f\n",sum);
}
return ;
}

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

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

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

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

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

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

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

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

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

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

    题解: 喵哈哈村的魔力源泉(1) 题解:签到题. 代码: #include<bits/stdc++.h> using namespace std; int main(){ long lon ...

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

    比赛地址:http://qscoj.cn/contest/2/ 都是中文题,这里不在详述题意 A.喵哈哈村的魔法石 分析:暴力求解 #include<iostream> #include& ...

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

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

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

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

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

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

随机推荐

  1. Android 实例解说加入本地图片和调用系统拍照图片

    在项目的开发过程我们离不开图片.而有时候须要调用本地的图片,有时候须要调用拍照图片.同一时候实现拍照的方法有两种,一种是调用系统拍照功能.还有一种是自己定义拍照功能. 而本博文眼下仅仅解说第一种方法, ...

  2. TopSelf安装Windows服务提示:执行未经授权的操作。。

    在一个项目中用到了八九个服务,服务的执行时间也是五花八门,有的年末执行一次,有的月中执行一次,有的月末最后一天执行一次,有的月初连续执行5天, 有的每天晚上执行,...还好各个服务并没有严格的关联关系 ...

  3. Codeforces Round #422 (Div. 2) B. Crossword solving 枚举

    B. Crossword solving     Erelong Leha was bored by calculating of the greatest common divisor of two ...

  4. Phoenix(SQL On HBase)安装和使用报告

    一.为什么使用Phoenix二.安装Phoenix2.1 兼容问题?2.2 编译CDH版本的Phoenix2.3 安装Phoenix到CDH环境中三.Phoenix的使用3.1 phoenix的4种调 ...

  5. hive impala C++ Java垃圾回收 Garbage Collection GC

    hive impala impala  推荐每个节点内存  2^7~2^8GB Impala与Hive的比较 - 文章 - 伯乐在线 http://blog.jobbole.com/43233/ &l ...

  6. MIPS 指令集将在近期开源,RISC-V 阵营慌吗?

    消息称,MIPS 指令集即将开源. eetimes 17 日报导,Wave Computing 公司表示,在明年第一季度发布最新 MIPS 指令集体系和 MIPS 最新内核 R6 的时候将开源 MIP ...

  7. JS是否确认提示 +页面跳转

    JS友好提示 +页面跳转 function logout()...{if (confirm("你确定要注销身份吗?是-选择确定,否-选择取消"))...{window.locati ...

  8. 获取Android系统应用信息

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  9. rails使用mysql数据库

    简单步骤 1,安装mysql 安裝 MySQL Ubuntu 上安裝 MySQL 請執行: $ sudo apt-get install mysql-server mysql-common mysql ...

  10. 前端模块化开发的规范:AMD与CDM

    AMD, 异步模块定义. CMD,通用模块规范.