摘要:
1 /* 2 ID: shangca2 3 LANG: C++ 4 TASK: msquare 5 */ 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #define INF 0xfffffff 13 using namespace std; 14 int o[10]; 15 typedef struct node 16 { 17 int num; 18 int a[10],pre; 19 char c; 20 }st; 21 ... 阅读全文
摘要:
直接枚举到100水过 1 /* 2 ID: shangca2 3 LANG: C++ 4 TASK: ratios 5 */ 6 #include 7 #include 8 #include 9 #include10 #include11 using namespace std;12 #define INF 0xfffffff13 int a[10][10];14 int main()15 {16 freopen("ratios.in","r",stdin);17 freopen("ratios.out","w", 阅读全文
摘要:
DP预处理出来 i位不超过j的个数 然后再进行从小到大找第一个比I大的 然后用I减掉上一个比I小的 剩余的按照之前的方法循环找 知道剩余为0细节挺繁琐的 对照数据改了又改 最后一组数据还超 了int。。 1 /* 2 ID: shangca2 3 LANG: C++ 4 TASK: kimbits 5 */ 6 #include 7 #include 8 #include 9 #include10 #include11 using namespace std;12 #define LL long long13 LL dp[32][32],kk[32];14 void... 阅读全文
摘要:
链接数据比较小 直接爆了 5重枚举断开的琏 dp[i][j][k] (i-j)区间为第k段 dp[i][j][k] = min(dp[i][j][k],dp[g][i-1][k-1]*s[i][j])(g 2 #include 3 #include 4 #include 5 #include 6 #define INF 100000 7 using namespace std; 8 int a[110],dp1[105][105][15],dp2[55][55][15],s[105][105]; 9 int main()10 {11 int i,j,k,n,g,o,e,aa,b,c;1... 阅读全文
摘要:
链接与上题类似 预处理一下各字符串之间最大的相同字符数就可以 注意dp要初始为负无穷 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 1050 8 int dp[N][11],k[11],q[2][N],w[12][12],f[N]; 9 char s[11][11];10 int compare(int x,int y)11 {12 int i,j,maxz=0;13 for(i = 0 ; i < k[x] ; i++)14 ... 阅读全文
摘要:
链接这题卡了一天 刚开始没考虑第一个传的和最后一个传的 感觉挺简单 啪啪的敲完 居然还过了17组数据。。正解:dp数组一维保存状态 一维保存当前传到了谁 再枚举是由谁传过来的 这样可以保证正确性 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define INF 0xfffffff 8 #define M 100010 9 int dp[M][20],a[20][20],q[2][M],f[M];10 int main()11 {12 int i,j,k,n;13 ... 阅读全文
摘要:
链接保存当前行和前一行两行的状态 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 10010 8 int a[N],dp[4][4][N],d[4]={0,1,1,2}; 9 int main()10 {11 int i,j,k,n,g;12 while(scanf("%d",&n)!=EOF)13 {14 memset(dp,0,sizeof(dp));15 for(i = 1; i a[i]||j>a[... 阅读全文