网站建设总结与,搜索引擎营销的含义,苏州中设建设集团有限公司网站,定制系统软件开发题目 P2036 PERKET题目描述思路代码 P3799 小 Y 拼木棒题目描述思路代码 P1010 幂次方题目描述思路代码 P1498 南蛮图腾题目描述思路代码 P1928 外星密码题目描述思路代码 P2036 PERKET
题目描述
比较苦度和酸度的最小差值
思路
搜索最小差值
代码
void dfs(int sd,int k… 题目 P2036 PERKET题目描述思路代码 P3799 小 Y 拼木棒题目描述思路代码 P1010 幂次方题目描述思路代码 P1498 南蛮图腾题目描述思路代码 P1928 外星密码题目描述思路代码 P2036 PERKET
题目描述
比较苦度和酸度的最小差值
思路
搜索最小差值
代码
void dfs(int sd,int kd,int cnt)
{if(cntn){int sumabs(sd-kd);if(sumsummkd!0) summsum;//定义summ为一个特别大的数不断更新return ;}cnt;dfs(sd*s[cnt],kdb[cnt],cnt);//加上这个数dfs(sd,kd,cnt);//不加当前数
}
signed main()
{long long suma1,sumb0,sum0;cinn;for(int i1;in;i){cins[i]b[i];dfs(1,0,0);} coutsumm;return 0;
}P3799 小 Y 拼木棒
题目描述
选取4根木棒摆成正三角形
思路
计算不同长度木棍的数量排列组合
代码
int main()
{long long n,count[50000]{0},a,sum0,ans0;cin n;for (int i 1; i n; i){cin a;count[a];//计数} for (int i 1; i 2500; i) //因为最大值5000因为两个数相加所以不超2500for (int j i ; j 5000-i; j){int c1count[i];int c2count[j];//两种短棍的数量int c3count[ij];//长棍的数量if(c32){if(ijc12)//正好i等于j{sumc1*(c1-1)/2*c3*(c3-1)/2%1000000007;//就是从c1个数中选两个再从c3个数中选两个anssum;}if(i!jc11c21){sumc1*c2*c3*(c3-1)/2%1000000007;//从c1,c2中各选一个在c3中选两个anssum;}}} cout ans%1000000007;//数值太大要取模return 0;
}P1010 幂次方
题目描述
把一个数用全是2或者0表示出来
思路
递归/分治先减去距离这个数最近的2的i的数逐层递减
代码
void solve(int x)
{ for(int i14;i0;i--)if(pow(2,i)x){if(i1) cout2;else if(i0) cout2(0);else{cout2(;solve(i);cout); } x-pow(2,i);if(x!0) cout;}
}P1498 南蛮图腾
题目描述
画三角形的图腾
思路
分治就是对三角形的复制移动代码注释会详细一点
代码 char a[2050][2050];
void sol(int x,int y,int n)//x表示纵向y表示横向
{int dspow(2,n);//偏移距离if(n1){a[x][y1]/;a[x1][y]/;a[x][y2]\\;a[x1][y3]\\;a[x1][y1]_;a[x1][y2]_;//就是一个三角形的return ;}//下面是对n为2 的时候有三个小三角形的与一个三角形的位置移动对比sol(x,yds/2,n-1);//第一个sol(xds/2,y,n-1);//第二个sol(xds/2,yds,n-1);//第三个
}
int main()
{int n;cinn;int dspow(2,n);memset(a, ,sizeof(a));sol(0,0,n);for(int i0;ids;i){for(int j0;jds*2;j)//因为横向距离是纵向的2倍couta[i][j];cout\n;}return 0;
}P1928 外星密码
题目描述
就是把折叠的字符串展开
思路
递归遇到’[后面数字是几就循环接到后面几次遇到‘]’ 返回
代码
string unfold() //定义string类型便于直接接后面
{ int n;string s,sj;char c;while(cinc){if(c[){cinn;sjunfold();while(n--)ssj;把需要展开的接后面}else{if(c]) return s;else sc;} } return s;
}
int main()
{coutunfold();return 0;
}