蒜头专题

程序设计:蒜头君下棋

蒜头君喜欢下棋。最近它迷上了国际象棋。国际象棋的棋盘可以被当做一个 8∗8 8 ∗ 8 8*8 的矩阵,棋子被放在格子里面(不是和中国象棋一样放在线上)。 蒜头君特别喜欢国际象棋里面的马,马的移动规则是这样的:横着走两步之后竖着走一步,或者横着走一步之后竖着走两步。例如,一匹马在 (3,3)(3,3) 的位置,则它可以到达的地方有 (1,2)(1,2),(2,1)(2,1),(1,4)(

深度搜索之蒜头学算术

蒜头的数学实在是太差了,于是老师把他关到小黑屋让他闭门修炼。老师跟他一张纸,上面一排写着1, 2, 3...N这N个数,中间用空白分隔。老师让他在空白处填上加号或者减号。他让蒜头君求出一共有多少种加运算符的方法使得整个表达式的值为0,并输出所有的方案。比如N=7时,1 2 3 4 5 6 7排成一排,一种插入符号的方案为1+2-3+4-5-6+7=0。是不是很有趣,快来帮蒜头君解出这题吧(*´▽`

计蒜客第四章:蒜头君的购物袋 3

计蒜客习题:蒜头君的购物袋 3 题目 样例 代码 #include<iostream>using namespace std;int dp[30010];int main(){int V,n,v,p,ma=0;cin>>n>>V;for(int i=1;i<=n;i++){cin>>v>>p;dp[v]=p;for(int j=0;j<=V;j++)if(dp[j]) dp

计蒜客第四章:蒜头君的购物袋 2

计蒜客习题:蒜头君的购物袋 2 题目 样例 代码 #include<iostream>using namespace std;int dp[3010];int main(){int V,n,v,p,ma=0;cin>>V>>n;for(int i=1;i<=n;i++){cin>>v>>p;for(int j=V;j>0;j--)if(dp[j]) dp[j+v]=max(

计蒜客第四章:蒜头君的购物袋 1

计蒜客习题:蒜头君的购物袋 1 题目 样例 代码 #include<iostream>using namespace std;int dp[30010];int main(){int V,n,v;cin>>V>>n;for(int i=1;i<=n;i++){cin>>v;for(int j=V;j>0;j--)if(dp[j]) dp[j+v]=1;dp[v]=1;}fo

计蒜客第四章:蒜头君的新游戏

计蒜客习题:蒜头君的新游戏 题目 样例 代码 #include <iostream>using namespace std;long long mp[35][35];int main(){int n,m,f1,f2;cin>>n>>m;mp[1][2]=1;mp[1][n]=1;for(int i=2;i<=m;i++)for(int j=1;j<=n;j++){f1=j-

计蒜客第三章:蒜头君回家

计蒜客习题:蒜头君回家 题目 样例 题解 两次BFS打表,第一次从起点到钥匙,第二次从终点到钥匙,找出两个表相同位置加和最小的值。 代码 #include<iostream>#include<queue>#include<cstring>using namespace std;int n,m,xx[7]={0,0,-1,1},num[2005][2005],yy[7]

68-蒜头君回家

问题描述: 蒜头君要回家,但是他家的钥匙在他的朋友花椰妹手里,他要先从花椰妹手里取得钥匙才能回到家。花椰妹告诉他:“你家的钥匙被我复制了很多个,分别放在不同的地方。” 蒜头君希望能尽快回到家中,他需要首先取得任意一把钥匙,请你帮他计算出回家所需要的最短路程。 蒜头君生活的城市可以看做是一个 n×m 的网格,其中有道路有障碍,钥匙和家所在的地方可以看做是道路,可以通过。蒜头君可以在城市中沿着