EOJ_1049_三元组稀疏矩阵相加
生活随笔
收集整理的這篇文章主要介紹了
EOJ_1049_三元组稀疏矩阵相加
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//運行時間卡得好緊,記得用printf, scanf
#include <bits/stdc++.h>using namespace std;typedef struct
{int row;int column;int value;
}node;void print(node arr1[], int loc1, int len1, node arr2[], int loc2, int len2)
{if(loc1==len1){for(int i=loc2;i<len2;i++)printf("%d %d %d\n",arr2[i].row, arr2[i].column, arr2[i].value);return;}if(loc2==len2){for(int i=loc1;i<len1;i++)printf("%d %d %d\n",arr1[i].row, arr1[i].column, arr1[i].value);return;}if(arr1[loc1].row < arr2[loc2].row){printf("%d %d %d\n",arr1[loc1].row, arr1[loc1].column, arr1[loc1].value);print(arr1, loc1+1, len1, arr2, loc2, len2);}else if(arr1[loc1].row > arr2[loc2].row){printf("%d %d %d\n",arr2[loc2].row, arr2[loc2].column, arr2[loc2].value);print(arr1, loc1, len1, arr2, loc2+1, len2);}else{if(arr1[loc1].column < arr2[loc2].column){printf("%d %d %d\n",arr1[loc1].row, arr1[loc1].column, arr1[loc1].value);print(arr1, loc1+1, len1, arr2, loc2, len2);}else if(arr1[loc1].column > arr2[loc2].column){printf("%d %d %d\n",arr2[loc2].row, arr2[loc2].column, arr2[loc2].value);print(arr1, loc1, len1, arr2, loc2+1, len2);}else{printf("%d %d %d\n",arr2[loc2].row, arr2[loc2].column, arr2[loc2].value+arr1[loc1].value);print(arr1, loc1+1, len1, arr2, loc2+1, len2);}}
}int main()
{int rowNum, columnNum, nodeNum;cin>> rowNum>> columnNum>> nodeNum;node* arr1 = new node[nodeNum+3];for(int i=0;i<nodeNum;i++)cin>> arr1[i].row>> arr1[i].column>> arr1[i].value;int nodeNum1 = nodeNum;cin>> rowNum>> columnNum>> nodeNum;node* arr2 = new node[nodeNum+3];for(int i=0;i<nodeNum;i++)cin>> arr2[i].row>> arr2[i].column>> arr2[i].value;print(arr1, 0, nodeNum1, arr2, 0, nodeNum);return 0;
}
總結
以上是生活随笔為你收集整理的EOJ_1049_三元组稀疏矩阵相加的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EOJ_1057_排名汇总
- 下一篇: EOJ_1064_树的层号表示法