思路:要找最長上公升子串行,所以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,實現歸屬於母...