究極思路dp題(偽裝spfa)

2021-08-26 15:18:54 字數 612 閱讀 6538

題面有一點錯誤,後來改了

應該是能夠湊齊x輸出1,否則輸出-1

這題看資料範圍就不是一道正經dp

但是a[i]的範圍很是引人遐想

另外q的範圍是1e5也鎖定了離線演算法

考慮將a[1]作為去補齊其他組合的元素

對於dp[i]表示在模a[1]範圍下能夠到達i的最小**

那麼就可以用spfa進行轉移

對於每個詢問

查詢dp[x%a[1]]是不是小於x就行了

貼**

#includeusing namespace std;

long long dis[1000005],n,q,shu,a[1000005],pd[1000005];

queue que;

void spfa()

}} }

}int main()

spfa();

for(int i=1;i<=q;i++)

else printf("-1\n");

} return 0;

}

氣泡排序究極奧義

原理 兩個for迴圈,外層for迴圈控制比較輪數 趟數 內層for迴圈比較每一輪中的前後兩項 次數 內層for迴圈每比較一輪就產生乙個當前迴圈的最大值 由於個別陣列本身的排列的特殊性 導致根本不需要將所有的趟數都排列完才可以 如下陣列 只需要排列一次即可 var arr 2,1,3,4,5,6,7,...

KMP演算法 究極版

翁振宇 字串匹配 kmp演算法 演算法實現一 字串匹配的關鍵在於減少匹配次數。而kmp演算法的核心思想就是匹配陣列,根據匹配陣列的值來排程匹配字串的索引減少多餘的排程。匹配陣列就是字串具有的相同字首 字尾的最大值。比如對於字串 ababacbbb 有 ta baba cbbb 0next 10 01...

究極卡常神技

return x x p pchar buf 1 22 out 1 22 p1 buf,p2 buf ll p3 1,ff 0 define getchar p1 p2 p2 p1 buf fread buf,1,1 21,stdin p1 p2 eof p1 inline void flush i...