刷题小计ACM模式之 1 读取未给出行列数的矩阵,2 动态规划

为什么要切换到ACM模式

通过对实验室毕业师兄师姐的询问,大部分所做的校招题目都在赛码网这个平台上, 以前自己刷题都是在Leetcode上,Leetcode属于核心代码模式。在ACM模式中还要自己组织输入输出。所以要开启输入输出和代码逻辑的双训练,因此,切换到ACM模式。

ACM模式 读取不知道行数和列数的矩阵,并将其转置


#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
int main() {

    vector<vector<int>> arr;
    string input;
    while (getline(cin, input)) {
        if (input.size() > 0) {
            stringstream stringin(input);
            int num;
            vector<int> a;
            while (stringin >> num) {
                cout<< num ;
                a.push_back(num);
            }
            arr.push_back(a);
        }
    }
//    cout << "rows: " << arr.size() << ", cols: " << arr[0].size() << endl;
    for (int j = 0; j < arr[0].size(); ++j) {
        for(int i = 0; i < arr.size(); ++i) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }

//    for (int i=0; i<arr.size(); i++) {
//        for (int j=0; j<arr[i].size(); j++) {
//            cout << arr[i][j] << " ";
//        }
//        cout << endl;
//    }

}

ACM模式,动态规划至爬楼梯

上台阶

时间限制:1S

内存限制:64MB

描述

有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?

注:规定从一级到一级有0种走法。

输入描述

输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=40), 表示楼梯的级数。

输出描述

对于每个测试实例,请输出不同走法的数量。

示例

输 入:

2
2
3

返回值:

1
2

#include<iostream>
#include<vector>
using namespace std;
int step(int &i) {
    if(i == 2) return 1;
    int dp[i+1];
  dp[1] = 0;
  dp[2] = 1;
  dp[3] =2;
  for(int a = 4; a < i+1; ++a) {
    dp[a] = dp[a-1] + dp[a-2];
  }
  return dp[i];
}
int main(void) {
  int n;
  cin>>n;
  vector<int> vec(n);
  for(int i = 0; i < n; ++i) cin>>vec[i];

  for(int i : vec) {
    cout<<step(i)<<endl;
  }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值