我試圖解決這個問題:https://www.hackerrank.com/challenges/board-cutting爲什麼這種()會改變矢量的值?
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#define LL long long
#define M 1000000007LL
using namespace std;
int T,n,m;
LL cc;
struct Cut{
int dir;
LL cost;
Cut(const int& dir, const LL& cost): dir(dir), cost(cost){}
Cut(){}
bool operator<(const Cut& cut) const
{
return this->cost >= cut.cost;
}
};
vector<Cut> c;
int main() {
cin >> T;
while(T--){
cin >> n >> m;
LL ans = 0, cnt[2] = {0};
c.clear();
for(int i=0; i<n-1; i++) cin >> cc, c.push_back(Cut(0, cc));
for(int i=0; i<m-1;i++) cin >> cc, c.push_back(Cut(1, cc));
sort(c.begin(), c.end());
for(int i=0; i<c.size(); i++){
cout << c[i].cost << endl;
}
cout << "END" << endl;
for(Cut x : c){
(ans += x.cost*(1+cnt[!x.dir]))%=M;
cnt[x.dir]++;
}
cout << ans << endl;
}
return 0;
}
我有這樣一個C++代碼,從STD I/O
我添加了一個環,以輸出矢量對象成本屬性消耗輸入。 現在以下輸入:
2
83 99
24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24
34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34 34
99 49
11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
第二個測試案例不具有成本24(僅第一測試案例有24個) 但是,如果你運行代碼,你會發現,載體含有切割對象在排序之後花費24()!
爲什麼會發生這種情況,我該如何解決?
(以上樣品輸入針對此問題hackerrank正式測試用例輸入,所以它的正確性是有保證的)
你應該更好地描述你的問題。也許嘗試更簡單的測試集?使用調試器來驗證輸入和輸出。什麼是輸入,輸出什麼? – JeffRSon
@JeffRSon已編輯包含問題鏈接,我試着減少n,m,但不能再現同一問題:( – shole