吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2725|回复: 3
收起左侧

[会员申请] 申请会员ID:Kevin_Red

[复制链接]
吾爱游客  发表于 2017-11-18 21:11
1、申 请 I D:Kevin_Red
2、个人邮箱: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[step]=i;
                dfs(step+1);
                book=0;
            }
        }
        return;
    }
    //检测是否能够运行(Need<=Work)
    public static boolean search(int p){
        for(int i=1;i<=m;i++)
            if(Need[p]>Work)
                return false;
        return true;
    }
    //安全性算法
    public static boolean safe(){
        Work=new int [m+1];
        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[a]==false&&search(a)){
                Finish[a]=true;
                for(int j=1;j<=m;j++)                    //运行完毕释放资源
                    Work[j]+=Allocation[a][j];
            }
            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[m+1];
        Available=new int[m+1];
        Max=new int[n+1][m+1];
        Allocation=new int[n+1][m+1];
        Need=new int[n+1][m+1];
        Finish=new boolean[n+1];
        a=new int[n+1];
        book=new int[n+1];
        //数据初始化
        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[j]=input.nextInt();
        for(int i=1;i<=n;i++)
            for(int j=1;j<=m;j++)
                Need[j]=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[j]=Need[j]+Allocation[j];
        //请求输入
        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[p]){
                flag=false;
                break;
            }
        if(flag){                        //如果没有错试着分配
            for(int i=1;i<=m;i++){
                Available-=Request;
                Need[p]-=Request;
                Allocation[p]+=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[num+5];
    float maxtemp=0;
    int i=1,j=1;
    while(i<=num){
        while(maxtemp<400&&i<=num){
            maxtemp+=cny[a[i++]];
        }
        if(maxtemp>=400)
            way[j++]=i-1;
        else
            way[j-1]=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[step]=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[k]=0;
    dfs(1);
    printf("最多可以减%d\n",max*50);
    waymax[0]=0;
    float sum=0;
    for(i=1;i<=max;i++){
            for(int j=waymax[i-1]+1;j<=waymax;j++){
                printf("%d ",amax[j]);
                sum+=cny[amax[j]];
            }
        printf("一起买,需要花费%.2f元\n",sum-50);
        sum=0;
    }
    getchar();getchar();
    return 0;
}
双十一红包分析:
#include<stdio.h>
int main(){
    float a[400];
    int t=1,j,i;                                    
    float n,temp,sum=0;                                
    scanf("%f",&n);                                        //变量输入
    while(n>0){
        a[t++]=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[j]<a[j+1]){
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    printf("其中:\n") ;                            //分析总数以及每个面额的数量
    int count=0;
    int k=1;
    for(i=1;i<t;i++){
        if(a>a[k]||a<a[k]){
            printf("有%d个%.2f元的红包\n",count,a[k]);
            count=0;
            k=i;
            count++;
        }
        else{
            count++;
        }        
    }
    printf("有%d个%.2f元的红包\n",count,a[k]);
    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[j];
        printf("第%d笔订单可以使用红包%.2f元\n",i,sum);
    }
    getchar();getchar();
    return 0;
}



发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2017-11-21 11:07
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。
吾爱游客  发表于 2017-11-21 16:06
Hmily 发表于 2017-11-21 11:07
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

你好,是因为缺少什么,还可以贴出一些实际问题解题的代码

点评

你可以参考现有精华标准发申请。  详情 回复 发表于 2017-11-21 16:22
Hmily 发表于 2017-11-21 16:22
游客 124.130.164.x 发表于 2017-11-21 16:06
你好,是因为缺少什么,还可以贴出一些实际问题解题的代码

你可以参考现有精华标准发申请。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-1 07:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表