A题 喵哈哈村的数据筛选游戏

题解:这道题签到题,拿个数组记录一下这个数是否出现过即可。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+5;
int vis[maxn];
int n;
int a[maxn];
int main(){while(cin>>n){memset(vis,0,sizeof(vis));for(int i=0;i<n;i++){cin>>a[i];}int flag = 0;for(int i=0;i<n;i++){if(vis[a[i]]==0){vis[a[i]]=1;if(flag==0){cout<<a[i],flag=1;}else cout<<" "<<a[i];}}cout<<endl;}
}

B题:喵哈哈村的扔硬币游戏

题解:直接暴力更新应该也能过,这里我提倡一种前缀和的做法,每次操作的时候只要看这个点被更新了奇数次还是偶数次就好了。

前缀和的具体方式看代码:

#include<bits/stdc++.h>
using namespace std;const int maxn = 1e5+7;int a[maxn];int main(){int n,m;scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int A,B;scanf("%d%d",&A,&B);a[A]++;a[B+1]--;}int sum = 0;for(int i=1;i<=n;i++){sum+=a[i];if(sum%2==0)printf("0");else printf("1");}printf("\n");
}

C题:喵哈哈村的三角形游戏

三角插值实际上就是假设三个顶点为p1,p2,p3,那么所有三角形内的点都满足

p.x = ap1.x+bp2.x+cp3.x;
p.y = a
p1.y+bp2.y+cp3.y;
a+b+c = 1

解这个方程得到a,b,c

然后再算p.w = ap1.w+bp2.w+c*p3.w即可。

判断是否在三角形内部,用计算几何的叉积或者面积法都可以。

#include<bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
double x1,yy1,z1,x2,y2,z2,x3,y3,z3;
double x,y;
struct node{double x,y;double w;
}p[5];
double dis(node A,node B){return sqrt((A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y));
}double area(node A,node B,node C){double len1 = dis(A,B),len2 = dis(B,C),len3 = dis(A,C);double p = (len1+len2+len3)/2;return sqrt(p*(p-len1)*(p-len2)*(p-len3));
}
bool equ(double A,double B){if(fabs(A-B)<eps)return true;return false;
}
int main(){while(cin>>p[0].x>>p[0].y>>p[0].w){for(int i=1;i<3;i++)cin>>p[i].x>>p[i].y>>p[i].w;cin>>p[3].x>>p[3].y;for(int i=3;i>=0;i--){p[i].x-=p[0].x;p[i].y-=p[0].y;}if(equ(area(p[0],p[1],p[2]),area(p[0],p[1],p[3])+area(p[0],p[2],p[3])+area(p[1],p[2],p[3]))==false){cout<<"-1"<<endl;continue;}double B = (p[1].x*p[3].y-p[3].x*p[1].y)/(p[1].x*p[2].y-p[2].x*p[1].y);double A;if(equ(p[1].x,0)==false)A = (p[3].x-B*p[2].x)/p[1].x;else A = (p[3].y-B*p[2].y)/p[1].y;printf("%.2f\n",A*p[1].w+B*p[2].w+(1.0-A-B)*p[0].w);}
}

D:喵哈哈村的修路游戏

答案显然为连通块的数量-1,随便拿个东西算连通块的数量就好了。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3+7;
vector<int> E[maxn];
int n,m;
int vis[maxn],cnt=0;
void dfs(int x){vis[x]=1;for(int i=0;i<E[x].size();i++){if(!vis[E[x][i]])dfs(E[x][i]);}
}
int main(){cin>>n>>m;for(int i=0;i<m;i++){int a,b;scanf("%d%d",&a,&b);E[a].push_back(b);E[b].push_back(a);}for(int i=1;i<=n;i++){if(!vis[i]){cnt++;dfs(i);}}cout<<cnt-1<<endl;
}

E:喵哈哈村的打印机游戏

区间DP,dp[l][r][d]表示区间[l,r],当前底色为d的最小花费。

然后枚举中间的节点进行转移就好了,具体看代码,是一道中规中矩的区间DP题目。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 106;
int dp[maxn][maxn][maxn];
const int inf = 1e8;
string s;
int solve(int l,int r,int d){if(l>r)return 0;if(s[l]-'A'==d&&l==r)return dp[l][r][d]=0;if(l==r)return dp[l][r][d]=1;if(dp[l][r][d]!=-1)return dp[l][r][d];dp[l][r][d]=inf;for(int i=0;i<26;i++){dp[l][r][d]=min(dp[l][r][d],solve(l,r,i)+1);}if(s[l]-'A'==d)dp[l][r][d]=min(dp[l][r][d],solve(l+1,r,d));if(s[r]-'A'==d)dp[l][r][d]=min(dp[l][r][d],solve(l,r-1,d));for(int i=l+1;i<r;i++){if(s[i]-'A'==d){dp[l][r][d]=min(dp[l][r][d],solve(l,i-1,d)+solve(i+1,r,d));}}return dp[l][r][d];
}
int main(){while(cin>>s){memset(dp,-1,sizeof(dp));cout<<solve(0,s.size()-1,27)<<endl;}
}

转载于:https://www.cnblogs.com/qscqesze/p/6591517.html

喵哈哈村的魔法考试 Round #9 (Div.2) 题解相关推荐

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

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

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

    喵哈哈村的狼人杀大战(4) 发布时间: 2017年3月6日 11:36   最后更新: 2017年3月6日 11:39   时间限制: 1000ms   内存限制: 128M 描述 喵哈哈村最近热衷于 ...

  3. 喵哈哈村的魔法考试 Round #10 (Div.2) B

    喵哈哈村与哗啦啦村的大战(二) 发布时间: 2017年3月27日 09:25   时间限制: 1000ms   内存限制: 128M 描述 喵哈哈村因为和哗啦啦村争夺稀有的水晶资源,展开了激烈的战斗. ...

  4. 喵哈哈村的魔法考试 Round #1 (Div.2) C 喵哈哈村的魔法石(II) 背包dp

    点击打开链接 描述 沈宝宝的天玄石做的又丑又难看,戴尔廖实在是看不下去了,于是就出手帮助了他. 戴尔廖从怀中掏出了很多块神奇的石头,这些石头都是矿石结晶.每颗矿石结晶拥有着的人之精华,以及的地之精华. ...

  5. 喵哈哈村的魔法考试 (1)

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

  6. 玲珑学院OJ 1130 - 喵哈哈村的魔法大师╳灬兲笙疯癫°月【强连通+可相交最小路径覆盖+背包】

    1130 - 喵哈哈村的魔法大师╳灬兲笙疯癫°月 Time Limit:1s Memory Limit:256MByte Submissions:196Solved:23 DESCRIPTION ╳灬 ...

  7. 喵哈哈村的魔法源泉(3)-(树的直径)

    喵哈哈村的魔法源泉(3) 发布时间: 2017年5月9日 20:59   最后更新: 2017年5月9日 20:59   时间限制: 1000ms   内存限制: 128M 描述 喵哈哈村有一个魔法源 ...

  8. Codeforces Round #514 (Div. 2)题解

    Codeforces Round #514 (Div. 2)题解 A 喵,直接模拟. B 枚举所有盖章时的,合法的,左上角的位置.能盖的话就盖一下.最后check一下图案是否相等即可 C 一轮一轮的扔 ...

  9. Codeforces Round #182 (Div. 1)题解【ABCD】

    Codeforces Round #182 (Div. 1)题解 A题:Yaroslav and Sequence1 题意: 给你\(2*n+1\)个元素,你每次可以进行无数种操作,每次操作必须选择其 ...

最新文章

  1. undb php,显示html过滤报错,我不知道如何修改了。
  2. python基础代码库-python基础知识和练习代码
  3. android 界面切换【转】
  4. 设计模式 -- (14)中介者模式
  5. Morph-UGATIT:一种支持渐进式域迁移的图像翻译方法
  6. 菜鸟学IT之python3关于列表,元组,字典,集合浅认识!
  7. 如何查看bmp文件头_效率神器:史上最强最小文件搜索软件Everything!
  8. readline安装
  9. quartz锁表misfire的处理策略设置
  10. Bailian2796 Bailian3681 数字求和【序列处理】
  11. sql查询时取日期部分内容(年月日时分秒)、增加时间
  12. 单片机知识点总结框图_89C51单片机的结构框图及原理解析
  13. k8s免fq下载镜像
  14. 纯JS+HTML+CSS实现表格增删改查翻页--模板文件管理
  15. SIFT matlab代码
  16. Treap + FHQ Treap
  17. nginx NSS error -12263 (SSL_ERROR_RX_RECORD_TOO_LONG) 处理
  18. LOAM源码解析1一scanRegistration
  19. 【重要】安卓微信闪退,非清空数据法解决,不破坏聊天记录【完善中】
  20. 数据库指向默认模式(Schema)

热门文章

  1. 深度学习框架 TensorFlow.NET 0.1.0,完善变量更新操作
  2. java office web apps_应用程序与 Office Web Apps 整合
  3. vue3 el-form表单验证 自定义校验
  4. String与Integer相互转换
  5. HTML的不同版本区别,HTML4.0、XHTML、HTML5每个版本之间有什么区别
  6. mysql连接数据了的dep_Mysql-多表连接的操作和用法
  7. java集合快速构建成树形json
  8. 用python玩转数据测试与作业_大学mooc用Python玩转数据章节测试答案
  9. 列表界面脚本脚本控制精度_AE脚本编辑
  10. 如何运用模板之家做html,Flask框架如何使用HTML模板