1025解題 學習

2021-07-08 14:02:10 字數 4068 閱讀 4303

這個題有個坑點 就是得到的組合不能重複 注意這個就好了

#include

#include

#include

#include

using

namespace

std;

int main()

}sort(b,b+back);

printf("%d\n",b[k-1]);

}return

0;}

過得比較多 給大家提供另一種容器set 自動實現去重排序

#include

#include

#include

#include

using

namespace

std;

int main()

int c=0;

printf("%d\n",s.size());

for(it=s.begin();it!=s.end();it++)

printf("\n");

}return

0;}

sort的應用

#include 

#include

#include

using

namespace

std;

struct cn

;bool cmp1(cn x,cn y)

bool cmp2(cn x,cn y)

bool c***(cn x,cn y)

bool cmp4(cn x,cn y)

bool cmp5(cn x,cn y)

int main()

for(int i=0;iscanf("%d",&b[i]);

c[i]=a[b[i]];

c[i].num=t;

t++;

}sort(c,c+m,cmp1);

for(int i=1;i0].num1=1;

if(c[i].jin!=c[i-1].jin)c[i].num1=i+1;

else c[i].num1=c[i-1].num1;

}sort(c,c+m,cmp2);

for(int i=1;i0].num2=1;

if(c[i].jiang!=c[i-1].jiang)c[i].num2=i+1;

else c[i].num2=c[i-1].num2;

}sort(c,c+m,c***);

for(int i=1;i0].num3=1;

if(c[i].perj!=c[i-1].perj)c[i].num3=i+1;

else c[i].num3=c[i-1].num3;

}sort(c,c+m,cmp4);

for(int i=1;i0].num4=1;

if(c[i].perjiang!=c[i-1].perjiang)c[i].num4=i+1;

else c[i].num4=c[i-1].num4;

}sort(c,c+m,cmp5);

for(int i=0;iint n1,n2;

if(c[i].num1<=c[i].num2)

else

if(n1>c[i].num3)

if(n1>c[i].num4)

printf("%d:%d\n",n1,n2);

}printf("\n");

/* for(int i=0;i}

}

歸併排序求逆序數

#include 

#include

#include

using

namespace

std;

int a[100005];

int left[100005], right[100005];

__int64 cnt;

void merge(int* a, int p, int q, int r)

left[n1] = right[n2] = 0x7fffffff;

i = j = 0;

for (k=p; k<=r; k++)

else

}return;

}void mergesort(int* a, int p, int r)

return ;

}int main()

return

0;}

地推、遞迴的乙個思維題

當dp[i] 劃分成 2 和 i-2 後,再劃分成 4和i-4時,4的部分,不能再劃分成2 , 2 組合,這樣就會和前面的2 和i-2 重複,同樣,劃分過2 ,i-2 以及 4, i-4 後,再劃分 6, i-6時,也不能劃分成 2,2,2 以及 2, 4或 4, 2,同理,劃分成8, i-8….

把 4, 6, 8…. 看成一整塊,就有下圖兩種情況(正著,倒著)

0;}

題意:給定hanoi塔的初始狀態

求將所有的盤子移到b柱子上所要的步數。

idea:

移動第n個盤子到b柱子,(前提是第n個盤子不在b柱子上,否則就處理第n-1個柱子)

1.將前n-1個移動到輔助的柱子上(遞迴/遞推了)

2.將第n個盤子移到b上(+1)

3.將前n-1個移到b上(+2^(n-1)-1)

#include 

#include

#include

#include

using

namespace

std;

char s[70];

long

long cal(int n,char goal)

}return0;}

int main()

return

0;}

乙個很不錯的遞迴題,我主要的過程就如一般的表示式求解,遇到左括號進入下層遞迴,

否則一直按每個字母前面的數字決定其輸出的次數,括號也是如此,而遞迴結束的標誌

則是遇到 右括號或者到字串的結尾,注意每次遞迴結束需要返回下次遍歷的序號

#include

#include

#include

char s[260];

int dfs(int ith)

else

}if(c==')') return ith;//返回本次讀到結尾的位置

}int main()

return

0;}

地推思想,狀態轉移方程為f[i]=max(f[i-1]+a[i],a[i])。

#include

int a[100010];

int main()

else

if(thissum>maxsum)

}printf("case %d:\n%d %d %d\n",k,maxsum,begin+1,end+1);

if(case_number) //測試資料之後有空行,一開始也沒看見,也wr了。

printf("\n");

}return

0;}

10 25 學習記錄

在前面的幾個章節中我們已經學習了 mongodb 中如何為集合新增資料和更新資料。在本章節中我們將繼續學習 mongodb 集合的刪除。mongodb remove 函式是用來移除集合中的資料。mongodb 資料更新可以使用 update 函式。在執行 remove 函式前先執行 find 命令來...

CodeVS1025 選菜 解題報告 揹包型DP

題目描述 description 在小松宿舍樓下的不遠處,有pk大學最不錯的乙個食堂 the farmer s canteen nm食堂 由於該食堂的菜都很不錯,也公道,所以很多人都喜歡來這邊吃飯。the farmer s canteen的點菜方式如同在超市自選商品一樣,人們從乙個指定的路口進去,再...

每日總結10 25

先貼上今日的任務計畫表以及相應的實施完成情況 暫且撇棄仍然未把任務全部完成一說,較之之前,能夠完成的任務有所增長,這是乙個小小的進步!總結反省 1.今天下午和今天晚上還是沒能管理好自己的時間,主要原因是睏意很重,不能很好地集中精神 2.對於自己已經構建好的思維導圖,仍然沒能安排時間進行複習與鞏固 3...