老规矩 有问题直接联系我:475517977@qq.com

A

直接暴力的for一遍,统计连续的有多少个就好了。模拟题。

#include<bits/stdc++.h>
using namespace std; int main(){
int k;
while(cin>>k){
string s;
cin>>s;
int cnt = 1;
int mx = 1;
for(int i=1;i<s.size();i++){
if(s[i]==s[i-1]){
cnt++;
mx=max(cnt,mx);
}else
cnt=1;
}
if(mx>=k){
cout<<"Lose"<<endl;
}else{
cout<<"Win"<<endl;
}
}
}

B

这道题是考察dfs的一道题目,dfs(int now,int a,int b)表示现在这个数是now,用了a个4,b个7,然后做下去就好了。

注意1000000000这个数据,答案会超过1e9的哦

#include<bits/stdc++.h>
using namespace std; long long n;
int cnt = 0;
long long ten[13];
map<long long,int>H;
long long ans = 0;
void solve(int a,int b,long long c,int len){
if(H[c])return;
if(c>10000000000LL)return;
if(a==b&&c>=n)ans=min(ans,c);
H[c]=1;
solve(a+1,b,c+ten[len]*4,len+1);
solve(a,b+1,c+ten[len]*7,len+1);
}
void solve(){
H.clear();
cnt = 0;
ans = 10000000000LL;
solve(0,0,0,0);
cout<<ans<<endl;
}
int main(){
ten[0]=1;
for(int i=1;i<13;i++)
ten[i]=ten[i-1]*10LL;
while(cin>>n)
solve();
}

C

感觉上非常麻烦的一道题,实际上你非常非常小的枚举每一个数就好了嘛(x

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<vector>
#include<queue>
#include<cmath>
#include<string>
#define mem(a,b) memset(a,b,sizeof(a))
#define LL __int64
#define MAX 100010
#include<iostream>
using namespace std; double a ,b ,c ,d ,l ,r; double cal(double x)
{
return fabs(a * x * x *x + b * x * x + c * x + d);
} int main()
{
while(cin>>a>>b>>c>>d>>l>>r)
{
double re = l;
double ans = cal(l);
while(r - re >= 0.01)
{
ans = max(ans,cal(re));
re += 0.01;
}
ans = max(ans,cal(r));
printf("%.2f\n",ans);
}
return 0;
}

D

简单来说,你首先把素数全部筛选出来,然后开始for素数,因为素数的数量少于n嘛,至少,大概在(logn)级别的。

然后你就可以枚举两个素数,然后再check第三个数是不是素数就好了。

#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std; const int maxn = 10000; int np, pri[maxn+5], vis[maxn+5]; void prime_table(int n) { np = 0;
memset(vis, 0, sizeof(vis));
vis[0] = vis[1] = 1; for (int i = 2; i <= n; i++) {
if (vis[i])
continue; pri[np++] = i;
for (int j = i * i; j <= n; j += i)
vis[j] = 1;
}
} int main () {
int n;
prime_table(maxn);
while (scanf("%d", &n) == 1) {
int ans = 0;
for (int i = 0; i < np; i++) {
for (int j = i; j < np; j++) {
if (pri[i] + pri[j] >= n)
break;
int t = n - pri[i] - pri[j]; if (vis[t] == 0 && t >= pri[j])
ans++;
}
}
printf("%d\n", ans);
}
return 0;
}

E

原题 hdu 5106,最暴力的方法,就是强行数位dp莽过去就好了。

但是这道题,其实只需要枚举某个二进制数和R第一个1不同的位置就行了。因为如果R某个位置的1变成了0,那么以后01就随便取变成了组合数的问题。

#include<bits/stdc++.h>

using namespace std;
typedef long long LL;
#define MX 1005
#define MOD 1000000007 LL C[MX][MX], bit[MX];
int N;
char R[MX]; void init() {
int i, j;
bit[0] = 1LL;
for (i = 1; i < MX; i ++) {
bit[i] = 2 * bit[i - 1] % MOD;
}
C[0][0] = 1;
for (i = 1; i < MX; i ++) {
C[i][0] = C[i][i] = 1;
for (j = 1; j < i; j ++) {
C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % MOD;
}
}
} int main(){
init(); int Tcase, i, one;
while (scanf("%d %s", &N, R) == 2) {
int len = strlen(R);
int rlt = 0; long long B = 0;
for (i = 0; i < len && N >= 0; i ++) {
if (R[i] == '1') {
if (N <= len - i - 1) { if (N) rlt = (rlt + (long long) (bit[len - i - 1] - 1) * C[len - i - 2][N - 1] % MOD) % MOD;
rlt = (rlt + B * C[len - i - 1][N] % MOD) % MOD;
B += bit[len - i - 1];
B %= MOD;
N --;
}
}
}
if (rlt < 0) rlt += MOD;
printf("%d\n", rlt);
} }

喵哈哈村的魔法考试 Round #5 (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 #19 (Div.2) 题解

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

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

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

  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 ...

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

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

随机推荐

  1. bzoj千题计划256:bzoj2194: 快速傅立叶之二

    http://www.lydsy.com/JudgeOnline/problem.php?id=2194 相乘两项的下标 的 差相同 那么把某一个反过来就是卷积形式 fft优化 #include< ...

  2. 20145226 《Java程序设计》第七周学习总结

    教材学习内容总结 学习目标 · 了解Lambda语法 · 了解方法引用 · 了解Fucntional与Stream API · 掌握Date与Calendar的应用 · 会使用JDK8新的时间API ...

  3. CentOS 无法通过 yum 安装新版 nodejs 解决办法(安装的还是老版的)

    官网安装说明:CentOS 安装 nodejs 第一步: curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo b ...

  4. 针对Jigsaw勒索软件的解锁工具

    针对Jigsaw勒索软件的解锁工具 据了解, 用户的计算机系统一旦感染了勒索软件Jigsaw,如果用户没有在一个小时之内支付赎金(0.4个比特币,价值约为150美金),那么恶意软件将会把系统中的上千份 ...

  5. deeplearning.ai学习LSTM

    一.LSTM架构与公式 这里的a<t>表示的就是原始输出,y<t>表示的就是经过softmax的输出,c<t>相当于状态.u(update)代表是输入门,f代表遗忘 ...

  6. Basic(消息)的一些属性及方法

    AMQP协议:是一个金融级的消息队列,确保消息万无一失 1.消息发布端的确认 手动确认消息是否已经发送 场景:发布消息到RabbitMQ中,我们需要知道这个消息是否发布成功了. *发布确认影响性能 c ...

  7. 【干货】DD 和 netcat实战---擦除数据和远控

    原创:Unit 2: Linux/Unix Acquisition 2.1 Linux/Unix Acquistion Using dd Continued DD也是一个复制设备数据的工具,比特流复制 ...

  8. ZeroMQ安装说明

    ZeroMQ安装说明 1.   安装 1.1.Linux zmq安装 安装过程参考地址:http://zeromq.org/intro:get-the-software的说明 安装步骤如下(在安装时参 ...

  9. 【转】Java JUnit 单元测试小结

    原文链接:https://segmentfault.com/a/1190000006731125 测试类型 单元测试(Unit test) 单元测试关注单一的类. 它们存在的目的是检查这个类中的代码是 ...

  10. KNN算法的感受 2

    (1):先将上述代码保存为kNN.py (2):再在IDLE下的run菜单下run一下,将其生成python模块 (3):import  kNN(因为上一步已经生成knn模块) (4):kNN.cla ...