申请会员ID:Kevin_Red
1、申 请 I D:Kevin_Red2、个人邮箱:609760471@qq.com
3、原创技术文章:
计算机专业本科生,喜爱编程
操作系统Dijkstra算法的java语言实现:
import java.util.Scanner;
public class Main {
//数据结构定义
public static int n,m; //n是进程个数,m是资源个数
public static int sum=0; //安全序列个数
public static int[] Available; //可利用资源向量
public static int[][] Max; //最大需求矩阵
public static int[][] Allocation; //分配情况矩阵
public static int[][] Need; //需求矩阵
public static boolean[] Finish; //状态向量
public static int[] Safe; //安全序列向量
public static int[] Work; //工作向量
public static int[] a; //全排列序列
public static int[] book; //标记数组
public static int sign=0; //标记变量
//全排列
public static void dfs(int step){
if(step==n+1){
if(safe()){
if(sum!=0&&sign==0){
System.out.println("SAFE");
sign=1;
}
System.out.printf("%2d : ",sum);
for(int i=1;i<=n;i++)
System.out.print(a+" ");
System.out.println();
}
return;
}
for(int i=1;i<=n;i++){
if(book==0){
book=1;
a=i;
dfs(step+1);
book=0;
}
}
return;
}
//检测是否能够运行(Need<=Work)
public static boolean search(int p){
for(int i=1;i<=m;i++)
if(Need>Work)
return false;
return true;
}
//安全性算法
public static boolean safe(){
Work=new int ;
for(int i=1;i<=m;i++) //初始化工作向量
Work=Available;
for(int i=1;i<=n;i++)
Finish=false;
for(int i=1;i<=n;i++){
if(Finish]==false&&search(a)){
Finish]=true;
for(int j=1;j<=m;j++) //运行完毕释放资源
Work+=Allocation];
}
else
return false;
}
sum++;
return true;
}
public static void main(String[] args){
Scanner input =new Scanner(System.in);
//数据结构初始化
n=input.nextInt();
m=input.nextInt();
int[] Request=new int;
Available=new int;
Max=new int;
Allocation=new int;
Need=new int;
Finish=new boolean;
a=new int;
book=new int;
//数据初始化
for(int i=1;i<=m;i++)
Available=input.nextInt();
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
Allocation=input.nextInt();
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
Need=input.nextInt();
for(int i=1;i<=m;i++)
Finish=false;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
Max=Need+Allocation;
//请求输入
int p=input.nextInt();
for(int i=1;i<=m;i++)
Request=input.nextInt();
//分配资源
boolean flag=true;
for(int i=1;i<=m;i++) //检测是否运行出错
if(Request>Available&&Request>Need){
flag=false;
break;
}
if(flag){ //如果没有错试着分配
for(int i=1;i<=m;i++){
Available-=Request;
Need-=Request;
Allocation+=Request;
}
dfs(1); //寻找安全序列
}
if(sign==0)
System.out.print("UNSAFE");
}
}
双十一购物津贴最优解计算c语言版:
#include<stdio.h>
#include<string.h>
#include<malloc.h>
int * book,* a,* waymax,* amax;
float * cny;
int num,max=0,mmax=0,flag=0;
void check(int * a){
int way;
float maxtemp=0;
int i=1,j=1;
while(i<=num){
while(maxtemp<400&&i<=num){
maxtemp+=cny];
}
if(maxtemp>=400)
way=i-1;
else
way=i-1;
maxtemp=0;
}
j--;
if(j>=max){
max=j;
mmax=0;
for(i=1;i<=j;i++)
waymax=way;
for(i=1;i<=num;i++)
amax=a;
}
else
mmax++;
if(mmax==800)
flag=1;
}
void dfs(int step){
if(flag==1)
return;
if(step==num+1){
check(a);
return;
}
for(int i=1;i<=num;i++){
if(book==0){
book=1;
a=i;
dfs(step+1);
book=0;
}
}
return;
}
int main(){
int i;
printf("请输入您购买商品的数量:");
scanf("%d",&num);
cny=(float *)malloc(sizeof(float)*(num+5));
book=(int *)malloc(sizeof(int)*(num+5));
a=(int *)malloc(sizeof(int)*(num+5));
amax=(int *)malloc(sizeof(int)*(num+5));
waymax=(int *)malloc(sizeof(int)*(num+5));
for(i=1;i<=num;i++){
printf("请输入第%d个商品的价格:",i);
scanf("%f",&cny);
}
for(int k=1;k<=num;k++)
book=0;
dfs(1);
printf("最多可以减%d\n",max*50);
waymax=0;
float sum=0;
for(i=1;i<=max;i++){
for(int j=waymax+1;j<=waymax;j++){
printf("%d ",amax);
sum+=cny];
}
printf("一起买,需要花费%.2f元\n",sum-50);
sum=0;
}
getchar();getchar();
return 0;
}
双十一红包分析:
#include<stdio.h>
int main(){
float a;
int t=1,j,i;
float n,temp,sum=0;
scanf("%f",&n); //变量输入
while(n>0){
a=n;
sum+=n;
scanf("%f",&n);
}
printf("您有%d个红包,总价值%.2f\n",t-1,sum);
for(i=1;i<t-1;i++) //排序
for(j=1;j<t-i;j++){
if(a<a){
temp=a;
a=a;
a=temp;
}
}
printf("其中:\n") ; //分析总数以及每个面额的数量
int count=0;
int k=1;
for(i=1;i<t;i++){
if(a>a||a<a){
printf("有%d个%.2f元的红包\n",count,a);
count=0;
k=i;
count++;
}
else{
count++;
}
}
printf("有%d个%.2f元的红包\n",count,a);
int order; //分析需要几个订单可以用完以及每个订单可用多少
(t-1)%10==0?order=(t-1)/10:order=((t-1)/10)+1;
printf("您需要%d笔订单可以使用所有红包\n",order);
printf("具体的:\n") ;
for(i=1;i<=order;i++){
sum=0;
for(j=i*10-9;j<=i*10&&j<t;j++)
sum+=a;
printf("第%d笔订单可以使用红包%.2f元\n",i,sum);
}
getchar();getchar();
return 0;
}
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。 Hmily 发表于 2017-11-21 11:07
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。
你好,是因为缺少什么,还可以贴出一些实际问题解题的代码 游客 124.130.164.x 发表于 2017-11-21 16:06
你好,是因为缺少什么,还可以贴出一些实际问题解题的代码
你可以参考现有精华标准发申请。
页:
[1]