1.21总结

1.21总结

8:00-12:00
接着昨天的问题 维斯顿的烦劳
  • 参考了一篇blog,对动态规划的过程与原理有了一定了解。
    https://www.cnblogs.com/kkbill/p/12081172.html

    (这篇写的还是比较通俗易懂的)

  • 但是这道题有一个难点,就是体积带浮点数,直接带进数组下标行不通,不能dp(dp[i],i下标必需是整型);

  • 然后想着建立一个结构体,达到能直接使用浮点型的目的,发现没啥用

  • 又看了一篇关于背包问题总结的百度文档,有一点启发:

    https://wenku.baidu.com/view/eea4a76b0b1c59eef8c7b497.html

把浮点型转换成整型,*100即可
(题目中给出了精度:modf(V)>=0.01)

大致过程如下:
  • 将double v *100赋值给int v1;

  • 输入double s[i]的时候,将s[i]*100存入s1[i](整型数组)

  • 然后是dp核心部分

 for( i=1; i<=k; i++)
    {
        for( j=v1; j>=s1[i]; j--)
        {
            dp[j]=max(dp[j],dp[j-s1[i]]+p[i]);
        }
    }
  • 最后输出printf("%.6lf",dp[v1]);
写了 homework
  • 整体不是很难,注意考虑时间为0也有价值的特例;
  • 最先交了一次,错误50%,然后经过一番断点排错(疯狂printf)
    发现

    ++num[i].ave=num[i].value/num[i].time++出了问题,当初没有强制转换,应该是这样:
    num[i].ave=(double)num[i].value/(double)num[i].time;
  • 再又是对于时间为0的例子要单独考虑,时间为0的话,价值直接加上即可,给ave赋值99999让其排名靠前:
 if(num[i].time!=0)
            {
                num[i].ave=(double)num[i].value/(double)num[i].time;
            }
 if(num[i].time==0)
            {

                num[i].ave=999999;
            }
  • 最后就是写一个简单排序,然后贪心一下累加总价值:
        for(i=1; i<=paper_sum; i++)
        {
            if(time_sum>=num[i].time)
            {
                time_sum-=num[i].time;
                value_max+=num[i].value;
            }
            else
            {
                value_max+=time_sum*num[i].ave;
                break;
            }
        }
14:00-16:00
接着昨天的 放牛问题
        long long int l,r;
        l=0;
        r=num[n-1]-num[0];
        while(l<=r)
        {
            long long int mid=(r-l)/2+l;
            if(check(mid))
            {
                l=mid+1;
            }
            else
            {
                r=mid-1;
            }

        }
        printf("%lld\n",r);
    }

回顾这题:二分框架需要选择好,然后就是要弄懂check()部分的原理

19:00-21:00
  • 研究了一些高校(c9,top2)的对软件工程培养方案,他们对国际化能力比较重视,很多采用了双语教学(英语上课,英文课本)。
  • 然后还有就是比较注重学生的全方位发展,要求学生不只是具备专业课方面的知识;
  • 还有是对学生的一些自主发展能力,创新能力,计算思维的看重(包括比较强势的杭电);
  • 对实践、实训方面的看重(比如浙大:在大四一整年,学院将帮助学生们联系好实习单位,或者是到国外公司、高校进行长时间带薪实习,提高实干能力。)
  • 此外,除了必要的软工核心课程之外,还会设立许多选修课程,让学生结合自己的兴趣,以达到某些领域的专业能力(这一点的话我们学校也有)

总之:英语要好,能力要强(编程实践,学习能力等)、知识面要广

用markdown编辑,摆弄一下个人blog,把笔记弄到blog上面
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值