Codeforces 106 DIV2 ACD
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的更多相关文章
- Codeforces #180 div2 C Parity Game
// Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...
- Codeforces #541 (Div2) - E. String Multiplication(动态规划)
Problem Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...
- Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)
Problem Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...
- Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)
Problem Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...
- Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)
Problem Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...
- 【Codeforces #312 div2 A】Lala Land and Apple Trees
# [Codeforces #312 div2 A]Lala Land and Apple Trees 首先,此题的大意是在一条坐标轴上,有\(n\)个点,每个点的权值为\(a_{i}\),第一次从原 ...
- Codeforces 106 C 多重背包
题目链接:http://codeforces.com/problemset/problem/106/C 根据题意列出式子,设每种蛋糕做了xi个,则对于每种材料bi*xi<=ai. 对于dough ...
- Codeforces #263 div2 解题报告
比赛链接:http://codeforces.com/contest/462 这次比赛的时候,刚刚注冊的时候非常想好好的做一下,可是网上喝了个小酒之后.也就迷迷糊糊地看了题目,做了几题.一觉醒来发现r ...
- codeforces #round363 div2.C-Vacations (DP)
题目链接:http://codeforces.com/contest/699/problem/C dp[i][j]表示第i天做事情j所得到最小的假期,j=0,1,2. #include<bits ...
随机推荐
- linux学习总结----对象
内置对象: Date new Date() --->系统当前时间 var d=new Date() d.getFullYear() getMonth() getDay() getDate() g ...
- python学习总结----简单数据结构
mini-web服务器 - 能够完成简单的请求处理 - 使用http协议 - 目的:加深对网络编程的认识.为后面阶段学习web做铺垫 简单数据结构 - 排列组合 import itertools # ...
- C++ 递归读取目录下所有文件
windows版本 #include <iostream> #include <io.h> #include <fstream> #include <stri ...
- HDU 4744 Starloop System(最小费用最大流)(2013 ACM/ICPC Asia Regional Hangzhou Online)
Description At the end of the 200013 th year of the Galaxy era, the war between Carbon-based lives a ...
- mysqli DB封装
<?php class DB { //私有的属性 private static $dbcon = false; private $host; private $port; private $us ...
- Linux挂载Win共享文件夹 一
1, Win下选中文件夹,属性设置为共享,红圈中的为共享路径,挂载时//ip/共享路径 2, 3,Linux需要安装这两个软件 rpm -qa | grep samba-client rpm -qa ...
- js 给某个div增加class 样式(三种方式)
第一种: el.setAttribute('class','abc'); <!DOCTYPE HTML> <HTML> <HEAD> <meta c ...
- ContestHunter#17-C 舞动的夜晚
Description: L公司和H公司举办了一次联谊晚会.晚会上,L公司的N位员工和H公司的M位员工打算进行一场交际舞.在这些领导中,一些L公司的员工和H公司的员工之间是互相认识的,这样的认识关系一 ...
- java Collections.sort()实现List排序的默认方法和自定义方法【转】
1.java提供的默认list排序方法 主要代码: List<String> list = new ArrayList();list.add("刘媛媛"); list. ...
- SICAU-OJ: A|B
A|B 题意: 给出一个整数n(1<=n<=10100),求Σd(d满足d可以整除n),同时保证不存在x^2有x^2可以整除n. 另外,n的质因子满足小于等于1000. 题解: 这题是我第 ...