這道題又一次的戳到了我的盲區;
一定要注意sort和cmp的返回值;
其實可以這麼理解;
對於cmp,我們的目的是讓資料按照給出的形式進行排序,例如我們想讓序列遞增,則排序的方式就為:
a預設情況下strcmp(a,b),當a的字典序大於b的時候,返回的就是1,等於為0,小於返回-1;
所以如果a>b,則strcamp(a,b)>0
但是我們希望的是遞增,也就是a#include#include#include#include#include#includeusing namespace std;
using std::vector;
const int maxn=100010;
struct nodemem[maxn];
bool cmp1(node a,node b)
bool cmp2(node a,node b)
bool c***(node a,node b)
int main()
if(c==1)else if(c==2)else
for(int i=0;i
system("pause");
return 0;
}
PAT A1007(動態規劃)
include include include include includeusing namespace std define maxn 100010 int dp maxn a maxn int s maxn int main if flag 1 dp 0 a 0 for int i 1 ia...
PAT A1017 優先佇列
這道題有點像優先佇列的思想,簡而言之就是挑選最小的入隊處理,如果有多個佇列就進行多個佇列的處理 借鑑的思想是採用記錄每個佇列中的任務完成時間,然後在讀入任務的時候進行輪詢,選擇結束時間最小的那個佇列,然後進行處理和等待時間的計算 如下 include include include include ...
PAT A1017 優先佇列
這道題有點像優先佇列的思想,簡而言之就是挑選最小的入隊處理,如果有多個佇列就進行多個佇列的處理 借鑑的思想是採用記錄每個佇列中的任務完成時間,然後在讀入任務的時候進行輪詢,選擇結束時間最小的那個佇列,然後進行處理和等待時間的計算 如下 include include include include ...