完美世界笔试:求小朋友的坐法

题1

有n个小朋友,都有属于自己的座位。
请问刚好有一个小朋友坐对座位,但其余都坐错的坐法有几种?

题2

零一背包问题
最气人的就是这个狗比题,之前做过,抄代码都不对,去tmd吧。

#include <vector>
#include <iostream>
#include <string>
#include <algorithm>


using namespace std;


class Stuff
{
public:
    Stuff(const initializer_list<int>& li) {
        auto it = li.begin();
        weight = *it++;
        value = *it;
    }
    int weight;
    int value;

    int operator<(const Stuff& stuff) {
        return weight < stuff.weight;
    }

};

std::ostream& operator<<(std::ostream &st, const Stuff& stuff) {
    st << "(" << stuff.weight << "," << stuff.value << ") ";
    return st;
}

int main() {
    int package_size = 15;
    vector<Stuff> stuffs({{5,2}, {4,2}, {3,3}, {5,5}, {2,1}});
    vector<int> dp(package_size+1);

    for(int i=0, len=stuffs.size(); i < len; ++i) {
        for(int j=package_size; j>=stuffs[i].weight; --j) {
            // 状态转移方程
            dp[j] = max(dp[j], dp[j-stuffs[i].weight] + stuffs[i].value);
        }
    }

    for(auto& val : dp) {
        cout << val << " ";
    }
    cout << endl;
}

正确答案是16,我算出来11,暂时不知道为啥

全部评论

相关推荐

专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务