[作业]枚举法3

作业:

#include <iostream>
using namespace std;
bool pd(int,int);
int main(){
	int n,a[610],cnt=0;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			//cout<<a[i]<<'\t'<<a[j]<<'\t'<<pd(a[i],a[j])<<endl;
			if(pd(a[i],a[j]))cnt++;
		}
	}
	cout<<cnt<<endl;
	return 0;
}
bool pd(int a,int b){
	if(b>=a)return 0;
	for(int i=2;i<b||i<a;i++){
		if(a%i==0&&b%i==0)return 0;
	}
	return 1;
}

#include <iostream>
using namespace std;
int main(){
	int n,a[1010],k;
	cin>>n>>k;
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	for(int i=0;i<n;i++){
		for(int j=i+1;j<n;j++){
			if(a[i]+a[j]==k){
				cout<<"yes"<<endl;
				return 0;
			}
		}
	}
	cout<<"no"<<endl;
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	int n,mi=2147483647;
	cin>>n;
	for(int i=1;i<=n;i++){//长
		for(int j=1;j<=n/i;j++){//宽
			if(mi>2*(i*j+i*(n/i/j)+j*(n/i/j))&&(float)n/i/j==(int)(n/i/j))mi=2*(i*j+i*(n/i/j)+j*(n/i/j));
		}
	}
	cout<<mi<<endl;
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	int n;
	cin>>n;
	for(int i=1;true;i++){
		int num=i;
		bool tf=1;
		for(int j=1;j<=n;j++){
			if(num%n!=1||num==1){
				tf=0;
				break;
			}
			num--;
			num/=n;
			num*=n-1;
		}
		if(tf){
			cout<<i<<endl;
			return 0;
		}
	}
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	int k,n1,n2,n3,n4,n5;
	cin>>k>>n1>>n2>>n3>>n4>>n5;
	k*=100;
	for(int i=1;i<=k;i++){
		for(int a=1;a<=k;a++){
			int b=i-a*n1;
			int c=i-b*n2;
			int d=i-c*n3;
			int e=i-d*n4;
			if(e*n5+a==i&&a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&b!=d&&b!=e&&c!=d&&c!=e&&d!=e){
				cout<<i<<' '<<a<<' '<<b<<' '<<c<<' '<<d<<' '<<e<<endl;
				return 0;
			}
		}
	}
	cout<<"not found"<<endl;
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	int a,b,c;
	cin>>a>>b>>c;
	for(int x=2;true;x++){
		if(a%x==b%x&&b%x==c%x){
			cout<<x<<endl;
			return 0;
		}
	}
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	int mp,n,h;//门牌 n 家数
	cin>>n;
	for(int i=1;true;i++){
		for(int j=1;j<=i;j++){
			h=i*(1+i)/2;
			if(h-2*j==n){
				cout<<j<<' '<<i<<endl;
				return 0;
			}
		}
	}
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	int a,b,c,cnt=0;
	cin>>a>>b>>c;
	for(int x=0;(c-a*x)/b>=0;x++){
		if((c-a*x)/b==(double)(c-a*x)/b){
			cnt++;
		}
	}
	cout<<cnt<<endl;
	return 0;
}

#include <iostream>
using namespace std;
bool pdzs(int);
int main(){
	int s,ma=0;
	cin>>s;
	for(int i=2;i<s;i++){
		if(pdzs(i)&&pdzs(s-i)&&ma<i*(s-i))ma=i*(s-i);
	}
	cout<<ma<<endl;
	return 0;
}
bool pdzs(int n){
	if(n==1)return 0;
	for(int i=2;i*i<=n;i++){
		if(n%i==0)return 0;
	}
	return 1;
}

#include <iostream>
using namespace std;
bool dx(int,int,int,int);
int main(){
	int N,A,B,maj=0,mai=2;
	cin>>N>>A>>B;//样例输入能过,测试过不了,应该是细节上的问题
	for(int i=1;i<=N;i++){
		for(int j=1;j<=N;j++){
			if(dx(j,i,A,B)&&dx(maj,mai,j,i)){
				mai=i;
				maj=j;
			}
		}
	}
	for(int i=2;i<=maj;i++){
		if(maj%i==0&&mai%i==0){
			maj/=i;
			mai/=i;
		}
	}
	cout<<maj<<' '<<mai<<endl;
	return 0;
}
bool dx(int a1,int a2,int b1,int b2){
	return a1*b2<b1*a2;
}

#include <iostream>
using namespace std;
int main(){
	int n,ma=0;
	cin>>n;
	for(int a1=n;a1>=0;a1--){
		for(int a2=n;a2>=0;a2--){
			for(int a3=n;a3>=0;a3--){
				if((a1+a2)%2==0&&(a2+a3)%3==0&&(a1+a2+a3)%5==0&&(a1+a2+a3)>ma){
					ma=(a1+a2+a3);
				}
			}
		}
	}
	cout<<ma;
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	int a;
	cin>>a;
	if((a/2)%2)cout<<a/4+1<<' '<<a/2<<endl;
	else cout<<a/4<<' '<<a/2<<endl;
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	int tem=1,l=0,a[20],cnt=0;
	while(1){
		cin>>tem;
		if(tem==0)break;
		a[l]=tem;
		l++;
	}
	for(int i=0;i<l;i++){
		for(int j=0;j<l;j++){
			if(a[i]*2==a[j])cnt++;
		}
	}
	cout<<cnt<<endl;
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	short n;
	cin>>n;
	for(short a=2;a<=n;a++){
		for(short b=2;b<a;b++){
			for(short c=b+1;c<a;c++){
				for(short d=c+1;d<a;d++){
					if(a*a*a==b*b*b+c*c*c+d*d*d)printf("Cube = %d, Triple = (%d,%d,%d)\n",a,b,c,d);
				}
			}
		}
	}
	return 0;
}

#include <iostream>
#include <cmath>
using namespace std;
int main(){
	for(short a=2;a<=100;a++){
		for(short b=a;b<=100;b++){
			int c=a*a+b*b;
			if(sqrt(c)==(int)sqrt(c)&&sqrt(c)<=100){
				c=sqrt(c);
				printf("%d*%d + %d*%d = %d*%d\n",a,a,b,b,c,c);
			}
		}
	}
	return 0;
}

#include <iostream>
using namespace std;
int main(){
	int p,e,i,d;
	cin>>p>>e>>i>>d;
	for(int k=d+1;k-d<=21252;k++){
		if(k%23==p&&k%28==e&&k%33==i){
			cout<<k-d<<endl;
			return 0;
		}
	}
	return 0;
}

时间有限,尚未完成。时间有限,尚未完成。

#include <iostream>
using namespace std;
int main(){
	int m,n;
	cin>>n>>m;
	for(int a=1;a<m;a++){
		if(n%a==0&&n%(m-a)==0&&m-a!=0){
			cout<<a<<endl;
			return 0;
		}
	}
	cout<<-1<<endl;
	return 0;
}

  • 24
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
摘要:为求解大规模的车间调度问题,基于层次性优化的目标级联,建立一种带层次性的车间调度模型,并以由两个零件族制造单元组成的车间调度为例,验证所建立的车间调度模型的有效性.实验结果表明,该车间调度模型不仅能解决大规模车间的分层调度问题,而且能根据加工时间和工件数量动态、合理地分配各制造单元的机器数量和工件的加工路径     随着市场竞争的加剧,制造业逐渐向多品种小批量的生产方式发展,企业的生产作业计划与调度问题也因此变得越来越复杂.对制造过程的合理调度,可有效地提高资源的利用率,提高生产企业整体的生产效率,作业车间调度(JSP是许多实际生产调度问题的简化模型,目前,已己经有枚、基于优先规则的构造性方肩发式算和神经网络等优化方应用于小规模的车间调度,并取得了比较好的优化效果.然而由于JSP是一个典型的组合优化问题,随着问题规模n的不断增加,建模和求解的难度不断增大,当n的值超过20时,求解的时间已不能满足生产调度实时性的要求,而且在实际的车间调度中,车间调度往往是分层进行的,如何将车间调度分级以求总体的优化,需要作进一步的研究.目标级联又称为日标级联分析(ATC),是解决非集中式、层次结构协调问题的一种新方,它允许层次结构中各元素自主决策,父代元素对子代元素的决策进行协调优化而获得问题的整体最优解.与其它优化方相比,目标级联具有可并行优化、级数不受限制和经过严格的收敛证明2等优点,因此常应用于解决大规模的系统优化问题.遗传算是一类借鉴生物界的进化规律遁适者生存、优胜劣汰的遗传机制)演化而来的随机搜索算,因具有良好的全局搜索性能及内在的并行处理能力而在JSP类的组合优化问题中获得了成功的应用.因此,文中拟通过ATC方和遗传算来解决车间作业调度问题,实现大型车间调度系统的整体最优化

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值