hdu6357 日了皮皮蝦的dp

2021-08-22 10:15:07 字數 1276 閱讀 7548

思路:要找最長上公升子串行,所以b序列是0123456789這樣的,拿原序列和b序列匹配,讓b序列中每個數的數量盡量多那麼答案肯定較優,因為要翻轉乙個區間,直接翻轉原序列情況較多,所以可以翻轉b序列,情況只有45種,比如你選了(3,6),那麼b序列就變成了012365436789,然後只要拿翻轉後的b序列和原序列比較,選出能讓b序列中的每個數字數量盡量多的情況就好了(相對位置不能改變)。至於翻轉哪個區間,可以像揹包選了那些物品一樣,也就是差不多像是路徑壓縮。(講道理,不會dp,菜的一批)

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

typedef long long ll;

typedef unsigned long long ull;

const ll inff = 0x3f3f3f3f3f3f3f3f;

#define for(i,a,b) for(int i(a);i<=(b);++i)

#define fol(i,a,b) for(int i(a);i>=(b);--i)

#define rew(a,b) memset(a,b,sizeof(a))

#define inf int(0x3f3f3f3f)

#define si(a) scanf("%d",&a)

#define sl(a) scanf("%lld",&a)

#define sd(a) scanf("%lf",&a)

#define ss(a) scanf("%s",a)

#define mod unsigned(1<<30)

#define pb push_back

#define lc d<<1

#define rc d<<1|1

#define pll pair#define p pair#define pi acos(-1)

int n,dp[100008][18],a[100008],b[18],num,qw[100008][18],mi,ma;

string s;

int main()

if(dp[i][j]=1&&j>1)

if(x==y) l=r;}}

}printf("%d %d %d\n",ans,l,r);

}return 0;

}

高階實驗6 3 5 關鍵活動 30 分

思路 第一步 把所有的入度為0度結點壓入佇列中並讓earliest 0 第二步 進行topsort,並把每個彈出佇列的元素壓入堆疊中,如果能更新每個彈出元素的鄰接點的earliest就更新。第三步 找出所有的earliest 最短工期的頂點,令它們的latest earliest。第四步 利用堆疊反...

高階實驗6 3 5 關鍵活動 30分 拓撲排序

解題思路 1 求拓撲排序判斷任務排程是否可行 2 存在拓撲排序,分別求各交接點的最早完成時間和最遲完成時間 3 找出最早完成時間和最遲完成時間一樣的交接點 4 輸出關鍵活動 include include define max 100 1 define inf 0x3f3f3f3f intg max...

擺脫虧損!中國「兩桶油」第三季度合計盈利635億元

眾所周知,今年上半年受疫情衝擊 國際油價 需求不振等影響,中國 兩桶油 業績慘淡,合計虧損500多億元。隨著有序復工復產,需求 這一局面已經改變。10月29日www.cppcns.com,中石油發布的第三季度業績顯示,今年第三季度開始擺脫上半年以來的虧損局面www.cppcns.com,實現歸屬於母...