摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 int main() 5 { 6 int x0,x1,x2,y0,y1,y2; 7 double s; 8 while(scanf("%d%d%d%d%d%d",&x0,&y0,&x1,&y1,&x2,&y2)) 9 {10 if(x0==0&&y0==0&&x1==0&&y1==0&&x2==0&
阅读全文
摘要:存在整数x和y使得二元一次方程 a*x+b*y=n有解,则n为a,b的最大公约数的整数倍即可,至于为啥,正在研究,应该是数论里的知识。。。。。 1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 long int a,b,n,a1,b1,t,m,r; 6 scanf("%ld",&m); 7 while(m--) 8 { 9 scanf("%ld%ld%ld",&a,&b,&n);10 a1=a;b1=b;11 if(a1<b
阅读全文
摘要:1 //三角形面积用到海伦公式:p=(a+b+c)/2; 2 //s=sqrt(p*(p-a)(p-b)(p-c)) 3 #include<stdio.h> 4 #include<math.h> 5 #include<stdlib.h> 6 int main() 7 { 8 double x1,x2,y1,y2,x3,y3; 9 double a,b,c,p,s;10 while(~scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3))11
阅读全文
摘要:思路:将其看成一个一个正方形块,边长为k 。n=l/k。当l/k>(int)(l/k)时即属于长多出一点,这时为了全部覆盖,就还需要一个路由器,你懂的 1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int N,l,d,r,n; 6 double k; 7 scanf("%d",&N); 8 while(N--) 9 {10 scanf("%d%d%d",&l,&d,&r);11 k=sqrt((double)r*r-(dou
阅读全文
摘要:题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=286简单的字符串统计,不多说,直接水过。 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 char a[10010][11],b[10010];//数组a用以存贮字符串,数组b用以计次数 5 int main() 6 { 7 int n,i,j; 8 scanf("%d",&n); 9 for(i=0;i<n;i++)10 {11 sca
阅读全文
摘要:约瑟夫环问题: 1 #include <stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int m,x,i,s,n; 6 scanf("%d",&n); 7 while(n--) 8 { 9 while(~scanf("%d%d",&m,&x))10 { s=0;11 for (i=2;i<=m;i++) s=(s+x)%i;12 printf ("%d\n", s+1);13 }14 }15 system...
阅读全文
摘要:总结:这道题刚才是错了,我用了一维数组,不能编译,后来发现自己好傻,str[1010],只是存贮的有m个车牌号,即编号。而没有存字符串,所以要用一个二维数组,即str[1010][6];来存贮,当最后if(strcmp(str[i],str[0])<0),strcpy(str[0],str[i]);比较完后输出的是str编号后的字符串 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int main() 5 { 6 int n,m,i; 7 char str[1010][6
阅读全文
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int i,j; 6 long long n; 7 int a[100]; 8 while(scanf("%lld",&n)!=EOF) 9 {10 i=0;11 if(n==0) puts("0");12 else{13 while(n)14 {15 a[i++]=n%2;16 n/=2;17 ...
阅读全文
摘要:总结:怎么又是这种情况,定义的数组太大?放到函数里出错?不会吧,没有那么大吧? 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 char ch[110];//定义在函数内就出错了,难道又越栈了? 5 int main() 6 { 7 int n,R,W,B,i,len; 8 scanf("%d%*c",&n);//由于要输入字符串,所以要考虑到enter 9 while(n--)10 {11 gets(ch);12 len=strlen(ch)...
阅读全文
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int N,i,j; 6 int a[3][3]; 7 scanf("%d",&N); 8 while(N--) 9 {10 for(i=0;i<3;i++)11 for(j=0;j<3;j++)12 scanf("%d",&a[i][j]);13 for(i=0;i<3;i++)14 {15 for(j=0;j<3;j++)16 ...
阅读全文
摘要:遇到分数时不要定义为int型,因为1/2,1/3=0,要定义为float型或者double型 1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int n,k,i; 6 double s,t; 7 scanf("%d",&n); 8 while(n--) 9 {10 s=0;11 scanf("%d",&k);12 for(i=1;;i++)13 {14 t=1.0/i;15 ...
阅读全文
摘要:总结:遇到“去重”与“排序”的问题,记住要先排序,然后再去重,因为排完序之后,重复的肯定在一起,只需a[i]!=a[i-1],把a[1]输出即可。排序可以用qsort,也可用冒泡排序,两个for循环。刚开始一直wa,后来终于发现自己犯了一个低级错误,我把count=0;定义在了while(t--)上面,这样的话导致我进行下一组测试时count不能从0开始,受伤一次的影响,太傻了,谨记,当遇到要进行多组测试数据时,计数的变量在每次进行新数据时要清零,方法就是把它放到while或者for循环里 1 #include<stdio.h> 2 #include<stdlib.h>
阅读全文
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int n,i,j,t,count=0; 6 int a[1010]; 7 scanf("%d",&n); 8 for(i=0;i<n;i++) 9 scanf("%d",a+i);10 for(i=0;i<=n-1;i++)11 {12 for(j=i+1;j<=n-1;j++)13 if(a[i]>a[j])14 {t=a[i];a[i]=a[j];a[j]=t;}1...
阅读全文
摘要:地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=252总结:与斐波那契差不多,动态规划主要玩的就是递归。 1 //与斐波那契差不多,动态规划主要玩的就是递归 2 #include<stdio.h> 3 #include<stdlib.h> 4 int main() 5 { 6 int n,m,i,a[42]; 7 scanf("%d",&n); 8 a[2]=3;a[3]=5; 9 for(i=4;i<42;i++)10 a[i]=a[i-1]+a[i-2];//利用 斐波那契公式
阅读全文
摘要:地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=240 1 #include<stdio.h> 2 #include<iostream> 3 #include<algorithm> 4 #include<string> 5 using namespace std; 6 struct chenji 7 { 8 int bj;//班级编号 9 int xh;//学号10 int cj;//数学成绩11 int mc;//名次12 } c[100001];13 bool comp(chenji x
阅读全文
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 int cmp(const void *a,const void *b) 4 { 5 return *(int *)a-*(int *)b; //升序 6 } 7 int main() 8 { 9 int t,n,i;10 int a[110];11 scanf("%d",&t);12 while(t--)13 {14 scanf("%d",&n);15 for(i=0;i<n;i++)16 scanf("%d..
阅读全文
摘要:1 #include<stdio.h> 2 #include<math.h> 3 #include<stdlib.h> 4 int is_prime(int x) 5 { 6 int i; 7 if(x==1) return 0; 8 for(i=2;i<=sqrt(x);i++) 9 if(x%i==0) return 0;10 return 1;11 }12 int main()13 {14 int t,n,i,sum;15 scanf("%d",&t);16 while(t--)17 {18 s...
阅读全文
摘要:刚开始一直不能编译,后来才知道,当数组所占空间比较大时,就不能放进函数里,因为在函数里定义的变量,是在栈上创建的,数组太大,会造成栈溢出,使程序出错。而全局变量是在数据段创建的,可非常大1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int light[1000010];//不能放到函数里是由于在函数中定义的变量,在栈上创建,全局定义的变量,在数据段上创建。由于你的数组太大,会造成栈溢出,使得程序错误 5 int main() 6 { 7 int n,t,m,sum=0; 8 c
阅读全文
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 int n; 6 scanf("%d%*c",&n); 7 while(n--) 8 { 9 int i,j,t=0;10 int a[11];11 char ch;12 for(i=0;i<=11;i++) //刚开始i<11,不知咋的出错了wa。我想应该要进行12次循环,虽然有11位号码,最后循环是enter吧13 {14 ch=ge...
阅读全文
摘要:题目分析:本题就是要利用M*N%R=((M%R)*(N%R))%R 来计算。即K先%1000,然后接下来有1001个K%1000相乘,之所以这样是由于当K或者Power比较大的时候它们相乘可能导致数据溢出,这就需要参考我的另一篇文章里的对大数进行求模运算的相关算法了 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> //包含memset函数 4 5 int Record[1000];//用以记录的一维数组 6 7 int KTail(int K) 8 { 9 memset(Record
阅读全文