随笔分类 - 基本
摘要:直接看代码 1 /**************************************************** 2 思路就是吧没办法配对的左括号放在栈里, 3 如果有一个新的右括号,那他一定只能和栈顶的左括号配对 4 *****************************************************/ 5 #include 6 #include 7 using namespace std; 8 int ans[25], Case, N; 9 int main()10 {11 while(~scanf("%d", &Case))wh
阅读全文
摘要:给出一个长度为n的序列A1,A2,A3,...An,求最大连续和。换句话说,要求找到1=<i=<j=<n,使得Ai+...+Aj尽量大。题目似乎很简单,但是在n非常大的时候(如n>10000)时,采用最习惯使用的暴力过的话似乎就有一些难度,下面逐步给出了几种方法,解决问题在可以解出来时,应该找求最优解方法一:枚举直接在i到j之间一一枚举。复杂度O(n^3) 1 #include<stdio.h> 2 int main() 3 { 4 int a[1000],n; 5 while(scanf("%d",&n)!=EOF) 6 { 7
阅读全文
摘要:每辆火车都从A方向驶入车站,再从B方向驶出车站,同时它的车厢可以进行某种形式的重新组合。假设从A方向驶来的火车有n节车厢(n<1000),分别按顺序编号为1,2,...,n。假定在进入车站之前每节车厢之间都是不连着的,并且它们可以自行移动,直到处在B方向的铁轨上。另外假定车站C里可以停放任意多节的车厢。但是一旦当一节车厢进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨后,它就不能再回到车站C。负责车厢调度的工作人员需要知道能否使它以a1,a2,...,an的顺序从B方向驶出。 请写一个程序,用来判断能否得到指定的车厢顺序。【输入格式】 输入由两行组成:第一行有n(
阅读全文
摘要:两个不超过100位的大数相加输入:11111111111111111111111111111111111111111111111111111111111111111111111111111111输出:2222222222222222222222222222222222222222#include<stdio.h> #include<string.h> int main() { char a[100]={'0'},b[100]={'0'}; while(~scanf("%s%s",a,b)) { int i; int l
阅读全文
摘要:输入n表示盘子的个数,只能小的在上,大的在下,求将第一个移到第三个的移法#include <stdio.h> int main() { void hanoi(int n,char one,char two,char three); // 对hanoi函数的声明 int m; printf("input the number of diskes:"); scanf("%d",&m); printf("The step to move %d diskes:\n",m); hanoi(m,'A','
阅读全文
摘要:输入n,表示边数,接着逆时针输入坐标,球多边形面积(注意多边形凹凸性!!!)#include<stdio.h> int main( ) { int n; while(scanf("%d",&n) && n) { int i; float a[100][2],s=0; scanf("%f %f",&a[0][0],&a[0][1]); for(i=1;i<n;i++) { scanf("%f %f",&a[i][0],&a[i][1]); ...
阅读全文
摘要:输入两个不超过200位的大数,输出它们的积输入样例1234567890098765432100输出样例1219326311126352690000在下面的例子程序中,用 a[220]和b[220]分别存放两个乘数,用z[440]来存放积。计算的中间结果也都存在z中。aResult 长度取400 是因为两个200 位的数相乘,积最多会有400 位。a[0], b[0], z[0]都表示个位。计算的过程基本上和小学生列竖式做乘法相同。为编程方便,并不急于处理进位,而将进位问题留待最后统一处理。现以 835×49 为例来说明程序的计算过程。147先算835×9。5×9
阅读全文

浙公网安备 33010602011771号