2017北京赛区J题】的更多相关文章

类型:三维动态规划 题目链接 题意: 合并连续石头块,最终要合并成一块,求时间最短,每次只能连续合并L~R块石头,不能合并成一块时输出-1 题解: 利用动态规划解决两种分问题 dp[l][r][k]:表示在区间l到r之间分成k堆石头的最小代价 当k=1时,转移方程为:dp[l][r][1]=min(dp[l][r][1],dp[l][i][x-1]+dp[i+1][r][1]+sum[l][r]); 当k>=2时,转移方程为:dp[l][r][k]=min(dp[l][r][k],dp[l][i…
题目链接 题意:在n*m的矩阵中选择变换或者不变换一个数变成p,使得最大子矩阵和最小 1<=n,m<=150, -1000<=p<=1000; 题解: 他人题解链接 涉及到知识点求最大矩阵和 : memset(ma,0x88,sizeof(ma)); memset(dp,0,sizeof(dp)); ans=-inf; for(int i=1;i<=n;i++) { for(int l=1;l<=m;l++) { sum=0; for(int r=l;r<=m;r…
转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud 现场赛的时候由于有个地方有点小问题,没有成功AC,导致与金牌失之交臂. 由于今天下午有点事情,无法打重现,所以下午只是花了十分钟做了一道J题,抢了个FB,2333333333 Yue Fei's Battle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 512000/512000 K (Java/Others)T…
期望得分:100+0+100=200 实际得分:100+20+0=120 离散化搞搞 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 100001 int a[N],b[N]; bool vis[N]; void read(int &x) { x=; char c=getchar(); while(!isdigit(c)) c=getch…
期望得分:100+60+100=260 实际得分:0+60+40=100 设图中有m个环,每个环有si条边,有k条边不在环中 ans= (2^s1 -2)*( 2^s2 -2)* (2^s3 -2)…… *( 2^sm -2)* 2^k (环上的边只有两种可能形成环) 找环好找,怎么找树? 一种方法是tarjan找出所有的环,总边数-环的边数=树的边数 std用了拓扑排序 考场上忘了树的情况,爆零了. 注意:n个点n条边是环套树森林 #include<cstdio> #define N 100…
期望得分:100+60+0=160 实际得分:100+30+0=130 考场上用的哈希 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define mod 1000003 #define mod2 100003 ]; bool vis[mod],vis2[mod2]; int hash1,hash2; int gethash() { int len=strlen(…
期望得分:100+100+50=250 实际得分:100+70+50=220 T1 最大值(max) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一本书,上面有很多有趣的OI问题.今天LYK看到了这么一道题目: 这里有一个长度为n的正整数数列ai(下标为1~n).并且有一个参数k. 你需要找两个正整数x,y,使得x+k<=y,并且y+k-1<=n.并且要求a[x]+a[x+1]+…+a[x+k-1]+a[y]+a[y+1]+…+a[y+k-1…
期望得分:100+100+40=240 实际得分:100+40+0=140 T1 一道图论神题(god) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,只有点权. LYK想把这个图删干净,它的方法是这样的.每次选择一个点,将它删掉,但删这个点是需要代价的.假设与这个点相连的还没被删掉的点是u1,u2,…,uk.LYK将会增加a[u1],a[u2],…,a[uk]的疲劳值.…
Dressing Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2674    Accepted Submission(s): 1179 Problem Description Wangpeng has N clothes, M pants and K shoes so theoretically he can have N×M×K…
期望得分:0+40+30=70 实际得分:0+10+10=20 题目修改:只能由0变1,只能用一次操作 大模拟 #include<cstdio> #include<cstring> using namespace std; ]; int len,n; ]; bool solve1() { if(len!=n) return false; ; ;i<len;i++) ; )==) { puts(s); return true; } return false; } bool so…