随笔分类 -  NYOJ

摘要:#include<stdio.h>#include<stdlib.h>int c[4];void fun(int num,int c[]){ int i=0; while(num>0)/*不能有等号,否则死循环*/ { c[i++]=num%10; num/=10; }}int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;}int main(){ int T,num,a,b,count,ans;int i; scanf("%d",&T); while(T--) 阅读全文
posted @ 2012-05-28 13:41 加拿大小哥哥
摘要:#include<stdio.h>#include<math.h>main(){ int T;float a,b,c; scanf("%d",&T); while(T--) { scanf("%f%f%f",&a,&b,&c); printf("%s\n",fabs(a+b-c)<=0.00001?"Yes":"No"); }}如何判读浮点数相等是关键 阅读全文
posted @ 2012-05-27 21:06 加拿大小哥哥
摘要:士兵杀敌(二)时间限制:1000 ms | 内存限制:65535 KB难度:5描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示指令的条数。(1<M<100000)随后的一行是N个整数,ai表示第i号士兵杀敌数目。(0<=ai<=100)随后的M行每行是一条 阅读全文
posted @ 2012-05-26 21:57 加拿大小哥哥
摘要:士兵杀敌(一)时间限制:1000 ms | 内存限制:65535 KB难度:3描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军现在想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。注意,南将军可能会问很多次问题。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1<N<1000000),M表示南将军询问的次数(1<M<100000)随后的一行是N个整数,ai表示第i号士兵杀敌数目。(0<=ai<=100)随后的M行每行有两个整数m,n,表示南将军想知道第m号到第n号士兵的总杀敌 阅读全文
posted @ 2012-05-26 17:46 加拿大小哥哥
摘要:子串和时间限制:5000 ms | 内存限制:65535 KB难度:3描述给定一整型数列{a1,a2...,an},找出连续非空子串{ax,ax+1,...,ay},使得该子序列的和最大,其中,1<=x<=y<=n。输入第一行是一个整数N(N<=10)表示测试数据的组数)每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的一行里有n个整数I(-100=<I<=100),表示数列中的所有元素。(0<n<=1000000) 输出 对于每组测试数据输出和最大的连续子串的和。 样例输入 151 2 -1 3 -2样例输出5提示输入数据很多,推荐 阅读全文
posted @ 2012-05-26 13:25 加拿大小哥哥
摘要:#include<stdio.h>//**O(nlogn)**//#include<string.h>#define min -32769//**int型最小数为-32768**//int stack[100001];//**模拟栈,其实不是栈,为了更好形象比较,嘿嘿**//int main(){ int n,i,t,top,low,high,mid; memset(stack,0,sizeof(stack)); while(~scanf("%d",&n)) { top=0;stack[0]=min; for(i=0;i<=n-1;i+ 阅读全文
posted @ 2012-05-26 07:56 加拿大小哥哥
摘要:#include <stdio.h>//#include<conio.h> main() { char a,b,c,d; int i; scanf("%d",&i); getchar(); while(i--) { scanf("%c%c%c",&a,&b,&c); getchar(); if (a>b) {d=a;a=b;b=d;} if (a>c) {d=a;a=c;c=d;} if (b>c) {d=b;b=c;c=d;} printf("%c %c %c\n&qu 阅读全文
posted @ 2012-05-25 23:50 加拿大小哥哥
摘要:/*关键是迭代公式要收敛*/#include<stdio.h>#include<math.h>double f(double x,double Y){return 8*pow(x,4)-7*pow(x,3)+2*x*x+3*x+6-Y;}double f_(double x){return 32*pow(x,3)-21*x*x+4*x+3;}int main(){ int T;double x1,x2,Y;scanf("%d",&T);while(T--){ scanf("%lf",&Y); if(f(0,Y)&g 阅读全文
posted @ 2012-05-24 21:05 加拿大小哥哥
摘要:解方程时间限制:1000 ms | 内存限制:65535 KB难度:3描述Now,given the equation 8*x^4 - 7*x^3 + 2*x^2 + 3*x + 6 == Y,can you find its solution between 0 and 100;Now please try your lucky.输入 The first line of the input contains an integer T(1<=T<=100) which means the number of test cases. Then T lines follow, each 阅读全文
posted @ 2012-05-24 21:00 加拿大小哥哥
摘要:1 2 #include<stdio.h> 3 #include<string.h> 4 #define N 1001 5 char a[N],b[N]; 6 int d[N][N]; 7 int max(int m,int n) 8 { 9 return m>n?m:n;10 }11 int LCSL(int len1,int len2)12 {13 int i,j;14 for(i=1;i<=len1;i++)15 d[i][0]=0;16 for(j=1;j<=len2;j++)17 d[0][j]=0;18 ... 阅读全文
posted @ 2012-05-23 20:21 加拿大小哥哥
摘要:#include<stdio.h>int My_strtol(int m){ int num[20];int i=0,j,count=0; while(m>0) { num[i++]=m%2; m/=2; } for(j=0;j<i;j++) if(1==num[j]&1) count++; return count;}int My_Count(int m){ int num[20];int i=0; while(m>0) { num[i++]=m%2; m/=2; } return i;}int main(){ int m,n,ans1,ans2; sc 阅读全文
posted @ 2012-05-22 22:50 加拿大小哥哥
摘要:背包问题时间限制:3000 ms | 内存限制:65535 KB难度:3描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1typedef struct data { int w; int v; }data; int cmp(const void ... 阅读全文
posted @ 2012-05-20 14:27 加拿大小哥哥
摘要://筛法是把不是素数的数标记掉,因此先要默认全为素数,先打表,不要每次打表#include<stdio.h>#include<math.h>#include<string.h>#define N 2000001int visit[N];void shaifa(){ int i,j; int m=(int)(sqrt(N)+0.5); memset(visit,0,sizeof(visit)); for(i=2;i<m;i++) if(!visit[i])//是素数 { for(j=2*i;j<N;j+=i) visit[j]=1; }}int m 阅读全文
posted @ 2012-05-20 10:37 加拿大小哥哥
摘要:组合数//唐甲希#include#includeint a[10];void fun(int n,int k){ int i,j; for(i=n;i>0;--i)//每个递归里也有这个循环!!! { //printf("%d%d\n",i,k); a[k]=i; ... 阅读全文
posted @ 2012-05-19 23:19 加拿大小哥哥
摘要:#include <stdio.h>int main(){ int z; scanf("%d",&z); while(z--) { char ch,s[10001]; int top=-1; while((ch=getchar())!='\n')//中间没有空格 { if(ch==')' && top>=0 && s[top]=='(')//top>=0表明栈不空 top--; else if(ch==']' && top>= 阅读全文
posted @ 2012-05-16 13:11 加拿大小哥哥
摘要://全部用long #include<stdio.h>long fun(int n,int m){ long long int a,b,ans=1; a=n-m+1; b=1; while(a<=n&&b<=m) { ans=ans*a/b; a++; b++; } return ans;}int main(){ long long int m,n,ans; while(scanf("%lld%lld",&n,&m),m||n) { ans=fun(n+m-1,m); printf("%lld\n" 阅读全文
posted @ 2012-05-13 23:28 加拿大小哥哥
摘要:#include<stdio.h>int main(){ int m,n,a,b;int ans=1; scanf("%d%d",&n,&m); a=n-m+1; b=1; while(a<=n&&b<=m) { ans=ans*a/b; // printf("%d %d %d\n",a,b,ans);//调试 a++; b++; } printf("%d\n",ans); return 0;}//c(8,3)=6*7*8/(1*2*3)第二种方法c(n,m)=n!/(m!*(n 阅读全文
posted @ 2012-05-13 20:21 加拿大小哥哥
摘要:#include<stdio.h>#include<string.h>#define N 10003int main(){ int i,T;int ans,len; scanf("%d",&T); while(T--) { //getchar();不可加 int ans=0; char num[1000000]; scanf("%s",num); getchar(); len=strlen(num); // for(i=0;i<len;i++) //printf("%d ",num[i]);//知 阅读全文
posted @ 2012-05-13 16:28 加拿大小哥哥
摘要://不要轻易改变写代码的习惯#include<stdio.h>#define N 30int main(){ int i,count;int T;int height; int a[10]; scanf("%d",&T); while(T--) { for(i=0;i<10;i++) scanf("%d",&a[i]); scanf("%d",&height); count=0; for(i=0;i<10;i++) if((height+N)>=a[i]) count++; pri 阅读全文
posted @ 2012-05-11 13:56 加拿大小哥哥
摘要:#include <stdio.h>int main(){int i,j,n,sum=0,x[1001]={0};scanf("%d",&n);for (i=1;i<=n;i++){scanf("%d",&j);if (x[j]==0) sum++;x[j]=1;}printf("%d\n",sum);for (i=1;i<=1000;i++)if (x[i]==1) printf("%d ",i);return 0;} 阅读全文
posted @ 2012-05-09 13:01 加拿大小哥哥