B表示完全看不懂。。就不弄了。。

E字符串先不管了。到时候系统学下字符串再处理

A

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <stack>
#include <queue>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <climits>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define PI 3.1415926535897932626
using namespace std;
int gcd(int a, int b) {return a % b == ? b : gcd(b, a % b);}
int src[];
int main()
{
int K;
scanf("%d",&K);
for (int i = ; i < ; i++) scanf("%d",&src[i]);
sort(src,src+);
int ans = ,sum = , cas = ;
while (true)
{
if (sum >= K) break;
if (ans == ) break;
sum += src[cas];
cas--;
ans++;
}
if (ans == ) puts("-1");
else printf("%d\n",ans);
return ;
}

C

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <stack>
#include <queue>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <climits>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define PI 3.1415926535897932626
using namespace std;
int gcd(int a, int b) {return a % b == ? b : gcd(b, a % b);}
#define MAXN 100005
int N;
struct node
{
int id;
int val;
friend bool operator < (const node & a,const node &b)
{
return a.val < b.val;
}
}src[MAXN];
LL sum[MAXN];
node stl[MAXN],str[MAXN];
int main()
{
scanf("%d",&N);
sum[] = ;
for (int i = ; i <= N; i++)
{
scanf("%d",&src[i].val);
src[i].id = i ;
sum[i] = sum[i - ] + src[i].val;
}
sort(src + , src + + N);
int topl = ,topr = ;
if (N % == )
{
for (int i = ; i <= N; i++)
{
if (i % == ) stl[topl++] =src[i];
else str[topr++] = src[i];
}
printf("%d\n",N / );
for (int i = ; i < topl; i++) printf("%d ",stl[i].id);
putchar('\n');
printf("%d\n",N / );
for (int i = ; i < topr; i++) printf("%d ",str[i].id);
putchar('\n');
}
else
{
for (int i = ; i <= N; i += )
stl[topl++] =src[i];
for (int i = ; i <= N; i += )
str[topr++] = src[i];
printf("%d\n",N / + );
for (int i = ; i < topl; i++ ) printf("%d ",stl[i].id);
putchar('\n');
printf("%d\n", N / );
for (int i = ; i < topr; i++) printf("%d ",str[i].id);
putchar('\n');
}
return ;
}

D

#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <stack>
#include <queue>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <climits>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#define LL long long
#define PI 3.1415926535897932626
using namespace std;
int gcd(int a, int b) {return a % b == ? b : gcd(b, a % b);}
#define MOD 1000000007
char input[];
struct node
{
char res;
int id;
}src[];
int G[];
node sta[];
LL dp[][][][];
void calcu(int l ,int r)
{
if (l >= r) return ;
if (l + == r)
{
dp[l][r][][] = ;
dp[l][r][][] = ;
dp[l][r][][] = ;
dp[l][r][][] = ;
}
if (G[l] == r)
{
calcu(l + ,r - );
for (int i = ; i < ; i++)
for (int j = ; j < ; j++)
{
if (j != ) dp[l][r][][] = (dp[l][r][][] + dp[l + ][r - ][i][j]) % MOD;
if (j != ) dp[l][r][][] = (dp[l][r][][] + dp[l + ][r - ][i][j]) % MOD;
if (i != ) dp[l][r][][] = (dp[l][r][][] + dp[l + ][r - ][i][j]) % MOD;
if (i != ) dp[l][r][][] = (dp[l][r][][] + dp[l + ][r - ][i][j]) % MOD;
}
return ;
}
else
{
int t = G[l];
calcu(l,t);
calcu(t + , r);
for (int i = ; i < ; i++)
for (int j = ; j < ; j++)
for (int m = ; m < ; m++)
for (int n = ; n < ; n++)
{
if (!( (m == && n == ) || (m == && n == )))
dp[l][r][i][j] = (dp[l][r][i][j] + (dp[l][t][i][m] * dp[t + ][r][n][j]) % MOD) % MOD;
}
}
}
int main()
{
while (scanf("%s",input + ) != EOF)
{
int len = strlen(input + );
int top = ;
for (int i = ; i <= len; i++)
{
if (input[i] == '(')
{
node tmp;
tmp.id = i;
tmp.res = input[i];
sta[top++] = tmp;
}
else
{
if (sta[top - ].res == '(')
{
G[i] = sta[top - ].id;
G[sta[top - ].id] = i;
top--;
}
else
{
node tmp;
tmp.id = i;
tmp.res = input[i];
sta[top++] = tmp;
}
}
}
memset(dp,,sizeof(dp));
calcu(,len);
LL ans = ;
for (int i = ; i < ; i++)
for (int j = ; j < ; j++)
ans = (ans + dp[][len][i][j]) % MOD;
printf("%I64d\n",ans % MOD);
}
return ;
}

Codeforces 106 DIV2 ACD的更多相关文章

  1. Codeforces #180 div2 C Parity Game

    // Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...

  2. Codeforces #541 (Div2) - E. String Multiplication(动态规划)

    Problem   Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...

  3. Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)

    Problem   Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...

  4. Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)

    Problem   Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...

  5. Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)

    Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...

  6. 【Codeforces #312 div2 A】Lala Land and Apple Trees

    # [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...

  7. Codeforces 106 C 多重背包

    题目链接:http://codeforces.com/problemset/problem/106/C 根据题意列出式子,设每种蛋糕做了xi个,则对于每种材料bi*xi<=ai. 对于dough ...

  8. Codeforces #263 div2 解题报告

    比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注冊的时候非常想好好的做一下,可是网上喝了个小酒之后.也就迷迷糊糊地看了题目,做了几题.一觉醒来发现r ...

  9. codeforces #round363 div2.C-Vacations (DP)

    题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...

随机推荐

  1. java线程(5)——线程池(上)

    引入: 在之前的例子中,我们需要使用线程时就直接去创建一个线程,这样既不浪费资源又十分方便.但如果我们需要创建多个并发的线程,而且短时间执行就结束了,如果还用之前的方式,就会大大降低效率和性能了. 因 ...

  2. javascript中将整数添加千位符号

    如果num是整数的话,将其转换成带千位符号的字符串: Number(num).toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1' +  ','); 另 ...

  3. [洛谷P3834] 【模板】可持久化线段树 1(主席树)

    题目大意:静态区间第K小 题解:主席树 卡点:无 C++ Code: #include <cstdio> #include <algorithm> #define maxn 2 ...

  4. [zoj] 3496 Assignment || 有源汇上下界最大流

    原题 贴个博客吧 #include<cstdio> #include<algorithm> #include<cstring> #define N 510 #def ...

  5. codeforces 1060 C

    https://codeforces.com/contest/1060/problem/C 题意:给你一个长度为n的数列a和长度为m的数列b,定义c(i,j)=ai*bj,得到c矩阵,给定值x,求c矩 ...

  6. docker公司测试环境搭建总结

    1.防火墙转发规则: [root@docker ~]# firewall-cmd --list-allpublic (active) target: default icmp-block-invers ...

  7. maven工程开启jetty调试

    转摘自:http://czj4451.iteye.com/blog/1942437 准备工作: a. 在pom.xml中配置jetty插件: <plugins> <plugin> ...

  8. MySQL远程访问权限 允许远程连接

    1 首先cd / 到根目录,打开mysql控制台 登录数据库  mysql -u root -p 2.授权远程连接 mysql> use mysql; Database changed mysq ...

  9. CommonJs/ES6/AMD模块的用法以及区别

    github地址: 一直以来对CommonJs/AMD/CMD/ES6的文件模块加载一直懵懵懂懂.甚至有时会将CommonJs的exports和ES6的export.default搞混.趁着学习web ...

  10. 粉刷匠(bzoj 1296)

    Description windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色. 每个 ...