摘要: 思路: dp[ i ] [ j ]代表取[ i ,j ]区间石子的最小值,然后dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]); #include #include #include #include #include usi... 阅读全文
posted @ 2016-10-12 23:07 see_you_later 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 主要这道题没有包含的情况,所以直接搞个左端,然后对于每个二分求一下>right的最近的位置j,那么ans就会增加 j 以后的; #include #include #include #include #include using namespace std;const int N=5e4+10;... 阅读全文
posted @ 2016-10-12 23:04 see_you_later 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 思路: 直接在串里找个最大的值就好了; #include #include #include #include #include using namespace std;const int INF=0x7fffffff;const int N=211;char a[N];int main(){ ... 阅读全文
posted @ 2016-10-12 22:59 see_you_later 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 思路: 直接就是筛出素数,然后我很撒比的从那个地方往后for找一个位置也是质数的输出; #include using namespace std;typedef long long LL;const int N=1e6+10;bool IsPrime[N];int prime[N];int n... 阅读全文
posted @ 2016-10-12 22:58 see_you_later 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 思路: 利用破圈法。 #include using namespace std;typedef long long LL;const int N=1e3+10;struct asd{ int x,y; int w;};asd q[N*50];int tol;int pre[N];b... 阅读全文
posted @ 2016-10-12 22:55 see_you_later 阅读(135) 评论(0) 推荐(0) 编辑