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 ...
随机推荐
- 分享 go语言爬虫---开源项目Pholcus
写在开头的话:记录一下最近学习Pholcus(https://github.com/henrylee2cn/pholcus)的过程,首先去学习的go基本语法,在没接触的时候发现很多不理解的地方,但是当 ...
- Visual Studio Code 配置Go 开发环境最简单的方法!!!
由于大家都知道的原因,在国内如果想访问go等各种资源,都会遇到某种不可预知的神奇问题.导致在VS Code中安装 go 各种插件都会失败. 于是乎,网上就出现了各种各样的解决方案:什么手动git cl ...
- Visual Studio 2015安装包
点击下载
- POJ 2761 Feed the dogs(平衡树or划分树or主席树)
Description Wind loves pretty dogs very much, and she has n pet dogs. So Jiajia has to feed the dogs ...
- 前端开发神器Sublime Text2/3之安装使用(windows7/Mac)
一,到官方网站下载神器 地址:http://www.sublimetext.com/3 Sublime Text 3 配置解释(默认){// 设置主题文件“color_scheme”: “Packag ...
- NO2——最短路径
[Dijkstra算法] 复杂度O(n2) 权值必须非负 /* 求出点beg到所有点的最短路径 */ // 邻接矩阵形式 // n:图的顶点数 // cost[][]:邻接矩阵 // pre[i]记录 ...
- 小C的记事本(栈记录字符串)
链接:https://www.nowcoder.com/acm/contest/122/D来源:牛客网 题目描述 小C最近学会了java小程序的开发,他很开心,于是想做一个简单的记事本程序练练手. 他 ...
- 一种保持顺序的Properties
其实properties有没有顺序都一样 程序都能正常运行 但看着就比较闹心 所以网上找了找 还真有人给了个例子实现读Property的有序 但是删除某些属性之后 写入又有问题 会异常 后来重写了一下 ...
- Java IO 之 RandomAccessFile 操作文件内容
RandomAccessFile类实现对文件内容的随机读写 文件内容的随机操作,重难点在于字符操作,具体查看API package org.zln.io.file; import java.io.IO ...
- 【bzoj2006】[NOI2010]超级钢琴 倍增RMQ+STL-堆
题目描述 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐. 这架超级钢琴可以弹奏出n个音符,编号为1至n.第i个音符的美妙度为Ai,其中A ...