喵哈哈村的魔法考试 Round #13 (Div.2) 题解
喵哈哈村的木星传说(一)
旋转90°,找找规律就知道(x,y)->(n-1-y,x)
然后输出就好了。
#include<bits/stdc++.h>
using namespace std;
const int maxn = 55;
int n,mp[maxn][maxn];
int main(){
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++)
cin>>mp[i][j];
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(j==0){
cout<<mp[n-1-j][i];
}else{
cout<<" "<<mp[n-1-j][i];
}
}
cout<<endl;
}
}
}
喵哈哈村的木星传说(二)
考虑每一个字符串,我们观察知道字符串的字母顺序实际上是没有关系的。
那么我们首先将字符串内的字符排序,然后再看看一共有多少种字符串就好了。
#include<bits/stdc++.h>
using namespace std;
set<string> S;
int n;
int main(){
while(cin>>n){
S.clear();
for(int i=0;i<n;i++){
string s;
cin>>s;
sort(s.begin(),s.end());
S.insert(s);
}
cout<<S.size()<<endl;
}
}
喵哈哈村的木星传说(三)
考虑dp[i][j]表示左边选了i个,右边选了j个dp的最大值。
那么dp[i][j]就可以从dp[i-1][j],dp[i][j-1]转移过来。
然后输出最大的就好了。
#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
using namespace std;
int f[2005][2005];
int n,a[2005],ans=0;
int main()
{
while(scanf("%d",&n)!=EOF){
memset(f,0,sizeof(f));
ans = 0;
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=0;i<=n;i++)
for(int j=0;j<=n-i;j++)
f[i+1][j+1]=max(f[i][j+1]+(i+j)*a[i],f[i+1][j]+(i+j)*a[n-j+1]);
for(int i=0;i<=n;i++)ans=max(ans,f[i+1][n-i+1]);
printf("%d\n",ans);
}
return 0;
}
喵哈哈村的木星传说(四)
首先行走的路线,贪心可以直到显然是(n>m)(0,0)->(1,0)->(2,0)->....->(n,0)->(n,1)->(n,2)->...->(n,m)这样走。
然后整理一下公式,发现答案 = n + C(n+m+1,m),然后C(n+m+1,m)这个用lucas做出来就好。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define P 1000000007
#define ll long long
using namespace std;
inline ll read()
{
ll x=0;char ch=getchar();
while(ch<'0'||ch>'9')ch=getchar();
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x;
}
ll n,m;
ll qpow(ll a,ll b)
{
ll ans=1;
for(ll i=b;i;i>>=1,a=(a*a)%P)
if(i&1)ans=ans*a%P;
return ans;
}
ll C(ll a,ll b)
{
if(b>a)return 0;
if(b>a-b)b=a-b;
ll s1=1,s2=1;
for(ll i=1;i<=b;i++)
{
s1=s1*(a-i+1)%P;
s2=s2*i%P;
}
return s1*qpow(s2,P-2)%P;
}
ll lucas(ll a,ll b)
{
return C(a/P,b/P)*C(a%P,b%P);
}
int main()
{
while(cin>>n>>m){
//n=read();m=read();
printf("%lld\n",(lucas(n+m+1,min(n,m))+max(n,m))%P);
}
return 0;
}
喵哈哈村的木星传说(五)
这是一道数学题。。。
我们来举个例子:有一条边R从x指向y,它的数值大于0,AB对弈,现在A走
{
那么如果数值为1,A走过去,数值变为0,B就走不回来了
如果数值为2,A走过去,数值变为1,如果B走回来,A不就死了?我们认为他们都足够聪明(虽然没有最强大脑聪明),怎么会做这么逗比的事情呢?(假设过来的前一条边已经走完了,数值为0)
如果数值大于3(我们假定为3),A走过去,数值变为2,B如果仁慈地走回来,数值变为1,这样不就浪费了一步?
B如果按照题意残忍地用最佳行动走回来,取光所有数值,那么数值变为0,这条路就封死了,A做了一件无意义的事情,还封死了自己可以走的一条路,这对于先手的A而言是不利的,
这两种方法都明显有违双方最优的前提。
}
★★★所以我们可以知道,无论是A走还是B走,即无论是先手走还是后手走,每走过一条路都一定取完,这样问题就简单了★★★
因为至少有个0,所以就简单了一点。。谁把对手逼到死路(两边都是0的)就赢了
从起始点开始向两边找,只要有一边到0边距离为奇数就是先手赢反之后手赢
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<set>
#include<queue>
#include<map>
#define pa pair<int,int>
#define inf 1000000000
#define ll long long
using namespace std;
inline int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int n,l,r;
int a[50];
int main()
{
while(cin>>n)
{
l=0;
r=n;
for(int i=1;i<=n;i++)a[i]=read();
while(a[l+1])l++;
while(a[r])r--;
r=n-r;
if(l&1||r&1)puts("YES");
else puts("NO");
}
return 0;
}
喵哈哈村的魔法考试 Round #13 (Div.2) 题解的更多相关文章
- 喵哈哈村的魔法考试 Round #2 (Div.2) 题解
喵哈哈村的魔法考试 Round #2 (Div.2) 题解 A.喵哈哈村的战争 题解: 这道题就是for一遍,统计每个村子的战斗力的和,然后统计哪个村子的战斗力和大一点就好了. 唯一的坑点,就是这道题 ...
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解
喵哈哈村的魔法考试 Round #1 (Div.2) 题解 特别感谢出题人,qscqesze. 也特别感谢测题人Xiper和CS_LYJ1997. 没有他们的付出,就不会有这场比赛. A 喵哈哈村的魔 ...
- 喵哈哈村的魔法考试 Round #7 (Div.2) 题解
喵哈哈村的魔法考试 Round #7 (Div.2) 注意!后四道题来自于周日的hihocoder offer收割赛第九场. 我建了个群:欢迎加入qscoj交流群,群号码:540667432 大概作为 ...
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解&源码(A.水+暴力,B.dp+栈)
A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05 最后更新: 2017年2月21日 20:06 时间限制: 1000ms 内存限制: 128M 描述 传说喵哈哈村有三种神 ...
- 喵哈哈村的魔法考试 Round #19 (Div.2) 题解
题解: 喵哈哈村的魔力源泉(1) 题解:签到题. 代码: #include<bits/stdc++.h> using namespace std; int main(){ long lon ...
- 喵哈哈村的魔法考试 Round #14 (Div.2) 题解
喵哈哈村的四月半活动(一) 题解: 唯一的case,就是两边长度一样的时候,第三边只有一种情况. #include <iostream> #include <cstdio> # ...
- 喵哈哈村的魔法考试 Round #4 (Div.2) 题解
有任何疑问,可以加我QQ:475517977进行讨论. A 喵哈哈村的嘟嘟熊魔法(1) 题解 这道题我们只要倒着来做就可以了,因为交换杯子是可逆的,我们倒着去模拟一遍就好了. 有个函数叫做swap(a ...
- 喵哈哈村的魔法考试 Round #20 (Div.2) 题解
题解: A 喵哈哈村的跳棋比赛 题解:其实我们要理解题意就好了,画画图看看这个题意.x<y,那么就交换:x>y,那么x=x%y. 如果我们经过很多次,或者y<=0了,那么就会无限循环 ...
- 喵哈哈村的魔法考试 Round #18 (Div.2) 题解
喵哈哈村的古怪石碑(一) 题解:暴力check一下是等比数列还是等差数列,然后输出答案即可.注意如果数据范围是1e9的话,就要快速幂了. 代码: #include <cstdio> #in ...
随机推荐
- androidpn 推送系统
(文中部分内容来自网络,如无意中侵犯了版权,请告之!) XMPP协议: XMPP : The Extensible Messaging andPresence Protocol. 中文全称:可扩展通讯 ...
- Android JAR包、Library项目
[JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目 (1)项目导入JAR包:1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面.2. ...
- Android:注册登录
注册登录的实现 先在layout里新建一个xml文件: //login.xml <?xml version="1.0" encoding="utf-8"? ...
- 如何在DOS窗口复制和粘贴命令
在键盘上按下windows+R键,打开运行窗口. 在“打开”处输入cmd,并按下enter键,打开DOS窗口. 把鼠标移动到DOS窗口标题处,单击鼠标右键,选择属性. 把编辑选项处的“快速编辑模式”勾 ...
- sklearn 岭回归
可以理解的原理描述: [机器学习]岭回归(L2正则) 最小二乘法与岭回归的介绍与对比 多重共线性的解决方法之——岭回归与LASSO
- vuejs之v-if-ajax异步请求数据遇到的坑
场景: params是异步请求获得的数据是一个对象,对象中又有chefHealthInfos数组 渲染时候会报错: 分析: 这是因为可以把v-if看成渲染了两次,两次结果params分别为{},{ch ...
- 【linux】crontab失效
在linux上,crontab任务全部使用完整路径,但是任务无效. 检测crontab 服务是否启动, /etc/init.d/cron status /etc/init.d/cron restart
- pyinstaller将py文件转成exe格式
首先要注意一下:打包python文件成exe格式这个过程只能在windows环境下运行 1. 直接在命令行用pip安装 pyinstaller pip install pyinstaller 2. 下 ...
- hdu 1455 N个短木棒 拼成长度相等的几根长木棒 (DFS)
N根短木棒 能够拼成几根长度相等的长木棒 求长木棒的长度 如果答案不止一种 输出最小的 Sample Input95 2 1 5 2 1 5 2 141 2 3 40 Sample Output65 ...
- bozj 1823(未完成)
题意: 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过专 ...