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. 51单片机实现外部中断0-F

    #include< reg51.h> #define uint unsigned int #define uchar unsigned char sfr P0M0 = 0x94; sfr ...

  2. dell raid配置

    常用查看命令:待有dell裸机环境会详细列出 megacli -LDInfo -Lall -aALL 查raid级别 megacli -AdpAllInfo -aALL 查raid卡信息 megacl ...

  3. 教你如何用Docker快速搭建深度学习环境

    本教程搭建集 Tensorflow.Keras.Coffe.PyTorch 等深度学习框架于一身的环境,及jupyter. 本教程使用nvidia-docker启动实例,通过本教程可以从一个全新的Ub ...

  4. LeetCode 33——搜索旋转排序数组

    1. 题目 2. 解答 2.1. 方法一 直接进行二分查找,在判断查找方向的时候详细分类. 当 nums[mid] < target 时, 若 nums[left] <= nums[mid ...

  5. 第十三次ScrumMeeting会议

    第十三次Scrum Meeting 时间:2017/12/1 地点:咖啡馆 人员:策划组美工组 名字 完成的工作 计划工作 蔡帜 完成公式的基本策划,Bug数量产生机制设计 科技树方面机制确定 游心 ...

  6. bbbbbeta

    about beta 写在开头:(小声bb,无任何专业知识) 好了正文开始了 = = beta冲刺对于来说可能是让我觉得非常有成就感的叭,相比于alpha,每天都能写代码的感觉真好鸭(认真脸)(虽然天 ...

  7. BZOJ4651 NOI2016网格(割点)

    首先显然可以通过孤立角落里的跳蚤使其不连通,所以只要有解答案就不会大于2.同样显然的一点是当且仅当跳蚤数量<=2且连通时无解.做法其实也很显然了:特判无解,若跳蚤不连通输出0,否则看图中是否无割 ...

  8. [bzoj1052] [HAOI2007]覆盖问题

    Description 某人在山上种了N棵小树苗.冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用3个L * L的正方形塑料薄膜 ...

  9. poj3683 2-sat Priest John's Busiest Day

    Description John is the only priest in his town. September 1st is the John's busiest day in a year b ...

  10. linux下解压,压缩命令大全---方便新手查看

    本文最后讲述如何在打包时排除某些文件 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) --- ...