2014年北邮网研上机

#include<stdio.h>
#include<math.h>
int max(int a,int b){
	return a > b?a:b;
}
int min(int a,int b){
	return a < b? a:b;
}
int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		int i;
		int input[n][2];
		for(i = 0;i < n;i++){
			scanf("%d %d",&input[i][0],&input[i][1]);
			int fenzi,fenmu;
			int maxinput = max(input[i][0],input[i][1]);
			int mininput = min(input[i][0],input[i][1]);
			fenzi = pow(2,maxinput) / pow(2,mininput) + 1;
			fenmu = pow(2,maxinput);
			if(fenzi % fenmu == 0)printf("%d\n",fenzi/fenmu);	
			else if(fenmu % fenzi == 0)printf("1/%d\n",fenmu/fenzi);
			else printf("%d/%d\n",fenzi,fenmu);						
	    }
	}
	return 0;
} 

#include<stdio.h>
int main(){
	int t;
	while(scanf("%d",&t)!=EOF){
		int i;
		int j;
		int k;int flag[t] = {0};
		for(i = 0;i < t;i++){
			int n;//节点个数 
			scanf("%d",&n);
			int value[n+1];//每个节点的权值 
			for(j = 1;j <= n;j++){
				scanf("%d",&value[j]);
			}
//			int flag[t] = {0};
			if(n > 1){
				int fatherinfo[n-1][2];
				for(k = 0;k < n-1;k++){
					scanf("%d %d",&fatherinfo[k][0],&fatherinfo[k][1]);
				}
//				int flag = 0;//记录是否输出0表示未输出 
				for(j = 0;j < n-1;j++){
					if(value[fatherinfo[j][0]] > value[fatherinfo[j][1]]){
//						printf("No\n");
						flag[i] = 1;
						break;
					}
				}
//				if(flag == 0) printf("Yes\n");				
			}
//			if(flag == 0)printf("Yes\n");
//			else printf("No\n");
//			else if(n = 1)printf("Yes\n");	
		}
		for(i = 0;i < t;i++){
			if(flag[i] == 0)printf("Yes\n");
			else printf("No\n");
		}
		 
	}
	return 0;
}

#include<stdio.h>
#include<string.h>
struct info{
	int pid;
	int child[101];//每个进程可以有多个子进程;
	//pid=0的进程没有父进程 
}tree[101]; //0<=pid<=100则进程数量最多101个 
void preRootOrder(int a){//下标 
	tree[a].pid = -1;
	for(int i = 1;i <= 100;i++){
		if(tree[a].child[i] != -1) preRootOrder(i);//若child=-1则pid=i的进程已结束或者不存在 
	} 
}
int main(){
	int t;//组数
	scanf("%d",&t); 
	while(t--){
		memset(tree,-1,sizeof(tree));//空间初始化
		tree[0].pid = 0;//任何情况下该进程不会结束,初始只开启pid=0的进程 
		int n;//操作的数量
		scanf("%d",&n);
		char operation[6];//操作 
		int a,b; 
		int i;
		for(i = 0;i < n;i++){
			scanf("%s",operation);
			if(!strcmp(operation,"FORK")){//输入字符串进行比较,若相等则返回0 
				scanf("%d %d",&a,&b);
				tree[a].child[b] = 1;//pid=b的进程开始运行
				tree[b].pid = b;				 
			}
			else{
				scanf("%d",&a);
				if(strcmp(operation,"QUERY") == 0){
//					scanf("%d",&a);
					if(tree[a].pid != -1) printf("Yes\n");
					else printf("No\n");
					
				}
				else{//kill
					if(tree[a].pid == -1 || a <= 0 || a > 100)//pid=0进程不能被kill
						continue; 
					//kill所有子进程
					preRootOrder(a);
				}
			}
		} 
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_36926779/article/details/79769876
今日推荐