problemscpp
A collection of my answers to algorithm problems in c++.
函数
acwing::acwing3442 命名空间参考

  1. 神奇的口袋
更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (acwing3442, case1)
 
 TEST (acwing3442, case2)
 

详细描述

  1. 神奇的口袋

函数说明

◆ main()

int acwing::acwing3442::main ( istream &  cin,
ostream &  cout 
)

在文件 acwing408.cpp1874 行定义.

1874 {
1875 int n;
1876 cin >> n;
1877 vector<int> a(n);
1878 for(int i = 0; i < n; i++) {
1879 cin >> a[i];
1880 }
1881 vector<vector<int>> dp(n + 1, vector<int>(41, 0));
1882 dp[0][0] = 1;
1883 for(int i = 1; i <= n; i++) {
1884 for(int j = 0; j <= 40; j++) {
1885 dp[i][j] = dp[i - 1][j];
1886 if(j >= a[i - 1]) {
1887 dp[i][j] += dp[i - 1][j - a[i - 1]];
1888 }
1889 }
1890 }
1891 cout << dp[n][40];
1892 return 0;
1893 }

被这些函数引用 TEST().

◆ TEST() [1/2]

acwing::acwing3442::TEST ( acwing3442  ,
case1   
)

在文件 acwing408_test.cpp2052 行定义.

2052 {
2053 istringstream in("3\n"
2054 "20\n"
2055 "20\n"
2056 "20");
2057 auto out = ostringstream();
2058 main(in, out);
2059 const auto ans = out.str();
2060 ASSERT_EQ("3", ans);
2061 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

acwing::acwing3442::TEST ( acwing3442  ,
case2   
)

在文件 acwing408_test.cpp2063 行定义.

2063 {
2064 istringstream in("20\n"
2065 "1\n"
2066 "2\n"
2067 "2\n"
2068 "5\n"
2069 "4\n"
2070 "5\n"
2071 "5\n"
2072 "2\n"
2073 "3\n"
2074 "5\n"
2075 "1\n"
2076 "4\n"
2077 "3\n"
2078 "5\n"
2079 "4\n"
2080 "3\n"
2081 "3\n"
2082 "2\n"
2083 "3\n"
2084 "5");
2085 auto out = ostringstream();
2086 main(in, out);
2087 const auto ans = out.str();
2088 ASSERT_EQ("37564", ans);
2089 }

引用了 main().