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. window平台下使用python虚拟环境

    第一步:安装virtualenv模块 安装virtualenv模块,使用pip install C:\Users\wangjun>pip install virtualenv 第二步:创建虚拟环 ...

  2. 【page.js】配置及Page函数说明

    页面.js中的Page函数用来注册一个页面,指定页面的初始数据.生命周期回调.事件处理函数等. 语法:Page(Object)参数: Object json对象 Page({ /** * data * ...

  3. Python 3 学习笔记之——标准库概述

    1. 操作系统接口 os 模块提供了一些与操作系统相关联的函数. >>> os.getcwd() # 获取当前工作目录 '/home/senius' >>> os. ...

  4. [boost-3] 函数对象

    boost库学习: 函数对象,成为‘高阶函数’,可以呗传入到其他函数或者从其他函数返回的一类函数. Boost.Bind可替换来自c++标准中的std::bind1st()和std::bind2dn( ...

  5. xinetd不太详的详解

    xinetd不太详的详解 http://blog.sina.com.cn/s/blog_88cdde9f01019fg5.html ################################## ...

  6. [IOI2007 D1T1]Miners 矿工配餐

    题目大意:有$2$个煤矿,$n$天.每天给一个煤矿送餐(共有有$3$种餐),价值为它与前面两次送餐(如果有的话)不同的种类数.最大化价值. 题解:看到只有三种餐,考虑状压$DP$.$f_{i,j,k, ...

  7. BZOJ4869 [Shoi2017]相逢是问候 【扩展欧拉定理 + 线段树】

    题目链接 BZOJ4869 题解 这题调得我怀疑人生,,结果就是因为某些地方\(sb\)地忘了取模 前置题目:BZOJ3884 扩展欧拉定理: \[c^a \equiv c^{a \mod \varp ...

  8. 【BZOJ 2753 滑雪与时间胶囊】

    Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 2843  Solved: 993[Submit][Status][Discuss] Descripti ...

  9. 【CF MEMSQL 3.0 C. Pie Rules】

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  10. 如何解析Json返回的数据

    Json在Web开发的用处非常广泛,作为数据传递的载体,如何解析Json返回的数据是非常常用的.下面介绍下四种解析Json的方式: Part 1 var list1 = [1,3,4]; alert( ...