功能:
該程式在兩個數列 ptr
和 ptrr
中找到一對數字,使得總成本公式最小,並輸出結果。
公式: total = ptr[i] + ptrr[j] + 1000 * abs(i - j)
步驟:
輸入數據:
ptr
和 ptrr
。變數初始化:
total = INT_MAX
:存儲當前最小總成本。ii, jj
:存儲最小總成本對應的索引(1-based)。計算總成本:
total
,更新 total
和索引 ( ii, jj )。輸出結果:
total
。
#include <bits/stdc++.h>
using namespace std;
//JAckis666
int main(){
int n=10;
int ptr[10];
int ptrr[10];
int dp[10];
for(int i=0;i<10;i++){
cin>>ptr[i];
}
for(int i=0;i<10;i++){
cin>>ptrr[i];
}
int ii,jj,total=INT_MAX;
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
if(ptr[i]+ptrr[j]+1000*abs(i-j)<total){
total=ptr[i]+ptrr[j]+1000*abs(i-j);
ii=i+1;
jj=j+1;
}
}
}
cout<<ii<<" "<<jj<<" "<<total;
}
結構定義與變數初始化
struct findddd{
int a=0, b=0;
};
findddd
,儲存香料所在的層數 (a
) 和位置 (b
)。a
和 b
為 0
,表示香料尚未找到。int n;
cin >> n;
int f[10001];
n
。f
儲存要查找的香料編號。輸入目標香料編號
for (int i = 0; i < n; i++) {
cin >> f[i];
}
f
陣列。初始化貨架資訊
findddd pur[20001];
int aa, bb;
cin >> aa >> bb;
pur[20001]
:大小為 20001 的陣列,儲存每個香料的層數與位置。aa
和 bb
,分別表示貨架層數和每層的香料數量。貨架資料存入結構
for (int i = 0; i < aa; i++) {
for (int j = 0; j < bb; j++) {
int buy;
cin >> buy;
pur[buy].a = i + 1;
pur[buy].b = j + 1;
}
}
buy
。pur[buy]
的 a
和 b
。查詢香料位置
for (int i = 0; i < n; i++) {
if (pur[f[i]].a != 0)
cout << pur[f[i]].a << " " << pur[f[i]].b << endl;
else
cout << "-1" << endl;
}
f
。pur[f[i]].a
不為 0
,則輸出其層數與位置。0
,則表示香料不存在,輸出 -1
。
#include <bits/stdc++.h>
using namespace std;
struct findddd{
int a=0,b=0;
};
int main(){
int n;
cin>>n;
int f[10001];
for(int i=0;i<n;i++){
cin>>f[i];
}
findddd pur[20001];
int aa,bb;
cin>>aa>>bb;
for(int i=0;i<aa;i++){
for(int j=0;j<bb;j++){
int buy;
cin>>buy;
pur[buy].a=i+1;
pur[buy].b=j+1;
}
}
for(int i=0;i<n;i++){
if(pur[f[i]].a!=0)
cout<<pur[f[i]].a<<" "<<pur[f[i]].b<<endl;
else{
cout<<"-1"<<endl;
}
}
}
#include <bits/stdc++.h>
using namespace std;
int main() {
string input;
getline(cin, input);
int shift;
cin >> shift;
shift %= 26;
for (char &ch : input) {
if (isupper(ch)) {
ch = 'A' + (ch - 'A' + shift) % 26;
} else if (islower(ch)) {
ch = 'a' + (ch - 'a' + shift) % 26;
}
}
cout << input << endl;
}
Jackis666
只後有空用chatgpt生題解