A

B

C

#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int maxn = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
int main()
{
int ques = ;
int l = ;
int anser = ;
string a;
cin >> a;
int len = a.size();
for (int i = ; i < len - ; i++)
{
l = ;
ques = ;
for (int j = i; j < len; j++)
{
int flag = ;
if (a[j] == ')')
{
l--;
}
else if (a[j] == '(')
{
l++;
}
else
{
ques++;
l--;
}
if (l < )
{
if (ques)
{
while (l < && ques)
{
l += ;
ques--;
}
}
else
{
l = ;
break;
}
}
if (l == )
{
//cout << i << " " << j << endl;
anser++;
}
}
}
cout << anser << endl;
return ;
}

D

A,B轮流走 dp[i][j][k]表示先走的人在i 另一个在j 之前人走的为k时是必胜还是必败 必胜为1 必败为0

#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
const double EPS = 1.0e-4;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
vector<int> f[];
int dp[][][];
int gra[][];
int dfs(int x, int y, int now)
{
if (dp[x][y][now] != -)
{
return dp[x][y][now];
}
int len = f[x].size();
for (int i = ; i < len; i++)
{
int to = f[x][i];
if (gra[x][to] >= now && dfs(y, to, gra[x][to]) == )
{
dp[x][y][now] = ;
return ;
}
}
return ;
}
int main()
{
mem(dp, -);
string a;
int n, m;
cin >> n >> m;
for (int i = ; i <= m; i++)
{
char ch;
int from, to;
scanf("%d %d", &from, &to);
cin >> a;
f[from].pb(to);
gra[from][to] = a[] - 'a';
}
for (int i = ; i <= n; i++)
{
for (int j = ; j <= n; j++)
{
if (dfs(i, j, ))
{
cout << "A";
}
else
{
cout << "B";
}
}
cout << endl;
}
return ;
}

最新文章

  1. Linux Free命令各数字含义及Buffer和Cache的区别
  2. [CLR via C#]17. 委托
  3. XSS 前端防火墙(4):天衣无缝的防护
  4. JavaScript DOM编程基础精华01(DOM入门,DOM模型和获取页面元素,事件,window对象的方法)
  5. git cheat sheet,git四张手册图
  6. HDOJ-1009 FatMouse&#39; Trade
  7. Oracle EBS-SQL (PO-9):检查期间采购订单执行情况.sql
  8. Java Word Ladder(字梯)
  9. [ext4]01 磁盘布局 - block分析
  10. Gist - ES6 Iterator
  11. golang动态加载原生代码思路
  12. hermite矩阵
  13. Vue 仿B站滑动导航
  14. 基于 SOA 概念 RPC 框架 的 消息中心 云部署 设计 漫谈
  15. python之线程相关操作
  16. ThreadException
  17. SQL Server中的高可用性(3)----复制 (转载)
  18. xcode7/ios9中 低版本app运行时,屏幕上下出现黑边的问题
  19. html5实现本页面元素拖放和本地文件拖放
  20. myeclipse越来越卡了怎么回事啊?

热门文章

  1. CentOS关闭系统不必要的端口
  2. legend3---Homestead常用操作代码
  3. Python基本语法_异常处理详解
  4. AndroChef Java Decompile
  5. hibernate 1 连接数据库、操作表
  6. jmeter遍历时间戳
  7. Struts2框架学习笔记1
  8. python2与3版本的编码问题
  9. 【Python】关于近期爬虫学习的总结
  10. Nginx/Nginx基础学习