A

#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-8;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 3e7 + ;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
ll mod = 1e9 + ;
int main()
{
string a;
cin >> a;
string ans;
ans = a;
for (int i = ; i <= a.size(); i++)
{
ans += a[a.size() - i];
}
cout << ans << endl;
return ;
}

B

#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-8;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 3e7 + ;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
int ans[][];
ll mod = 1e9 + ;
int getans(int x)
{
if (x < )
{
return x;
}
else
{
int cur = ;
while (x > )
{
if (x % != )
{
cur *= x % ;
}
x /= ;
}
return getans(cur);
}
}
int main()
{
for (int i = ; i <= ; i++)
{
int now = getans(i);
for (int j = ; j <= ; j++)
{
ans[i][j] = ans[i - ][j];
}
ans[i][now]++;
}
int q;
cin >> q;
int l, r, k;
for (int i = ; i <= q; i++)
{
scanf("%d %d %d", &l, &r, &k);
cout << ans[r][k] - ans[l - ][k] << endl;
}
return ;
}

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-8;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 3e7 + ;
const int maxm = ;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
int ans[][];
ll mod = 1e9 + ;
int main()
{
int n, a, b;
cin >> n >> a >> b;
int x, y;
x = y = -;
int cnt = n / a;
for (int i = ; i <= cnt; i++)
{
if ((n - i * a) % b == )
{
x = i;
y = (n - i * a) / b;
break;
}
}
if (x == -)
{
cout << - << endl;
return ;
}
int cur = ;
for (int i = ; i <= x; i++)
{
cout << cur + a << " ";
for (int j = ; j <= a - ; j++)
{
cout << cur + j << " ";
}
cur += a;
}
for (int i = ; i <= y; i++)
{
cout << cur + b << " ";
for (int j = ; j <= b - ; j++)
{
cout << cur + j << " ";
}
cur += b;
}
//cout << endl;
return ;
}

D

https://www.cnblogs.com/AWCXV/p/8453152.html

https://www.cnblogs.com/forever97/p/cf463.html

#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
const int N = 4e5;
const int M = ;
const ll INF = 1e16;
int Q;
ll last, W[N + ], sum[N + ][M + ];
int f[N + ][M + ], cnt = ;
int main()
{
cin >> Q;
for (int i = ; i <= ; i++)
{
sum[][i] = sum[][i] = INF;
}
W[] = INF;
for(int i=;i<=Q;i++)
{
ll ope, p, q;
cin >> ope >> p >> q;
if (ope == )
{
ll R = p ^ last, w = q ^ last;
cnt++;
W[cnt] = w;
if (W[R] >= w)
{
f[cnt][] = R;
}
else
{
ll now = R;
for (int i = ; i >= ; i--)
if (W[f[now][i]] < w)
{
now = f[now][i];
}
f[cnt][] = f[now][];
}
for (int i = ; i <= ; i++)
{
f[cnt][i] = f[f[cnt][i - ]][i - ];
} sum[cnt][] = W[f[cnt][]]; for (int i = ; i <= ; i++)
{
if (f[cnt][i] == )
{
sum[cnt][i] = INF;
}
else
{
sum[cnt][i] = sum[cnt][i - ] + sum[f[cnt][i - ]][i - ];
}
}
}
else
{
ll R = p ^ last, X = q ^ last;
int len = ;
if (X < W[R])
{
cout << << endl;
last = ;
continue;
}
X -= W[R];
len++;
for (int i = ; i >= ; i--)
{
if (X >= sum[R][i])
{
X -= sum[R][i];
R = f[R][i];
len += ( << i);
}
}
cout << len << endl;
last = len;
}
}
return ;
}

Codeforces 932 数组环构造 树上LCA倍增的更多相关文章

  1. LCA(倍增在线算法) codevs 2370 小机房的树

    codevs 2370 小机房的树 时间限制: 1 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题目描述 Description 小机房有棵焕狗种的树,树上有N个节点, ...

  2. 【codevs2370】小机房的树 LCA 倍增

    2370 小机房的树  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题目描述 Description 小机房有棵焕狗种的树,树上有N个节点,节点标号为0 ...

  3. 【BZOJ5304】[HAOI2018]字串覆盖(后缀数组,主席树,倍增)

    [BZOJ5304][HAOI2018]字串覆盖(后缀数组,主席树,倍增) 题面 BZOJ 洛谷 题解 贪心的想法是从左往右,能选就选.这个显然是正确的. 题目的数据范围很好的说明了要对于询问分开进行 ...

  4. CodeVs.2370 小机房的树 ( LCA 倍增 最近公共祖先)

    CodeVs.2370 小机房的树 ( LCA 倍增 最近公共祖先) 题意分析 小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上.有一天, ...

  5. POJ.1986 Distance Queries ( LCA 倍增 )

    POJ.1986 Distance Queries ( LCA 倍增 ) 题意分析 给出一个N个点,M条边的信息(u,v,w),表示树上u-v有一条边,边权为w,接下来有k个询问,每个询问为(a,b) ...

  6. POJ.1330 Nearest Common Ancestors (LCA 倍增)

    POJ.1330 Nearest Common Ancestors (LCA 倍增) 题意分析 给出一棵树,树上有n个点(n-1)条边,n-1个父子的边的关系a-b.接下来给出xy,求出xy的lca节 ...

  7. 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 D.寻找-树上LCA(树上a到b的路径上离c最近的点)

    链接:https://ac.nowcoder.com/acm/contest/558/D来源:牛客网 寻找 小猫在研究树. 小猫在研究树上的距离. 给定一棵N个点的树,每条边边权为1. Q次询问,每次 ...

  8. LCA(最近公共祖先)——LCA倍增法

    一.前人种树 博客:最近公共祖先 LCA 倍增法 博客:浅谈倍增法求LCA 二.沙场练兵 题目:POJ 1330 Nearest Common Ancestors 代码: const int MAXN ...

  9. POJ - 1330 Nearest Common Ancestors(dfs+ST在线算法|LCA倍增法)

    1.输入树中的节点数N,输入树中的N-1条边.最后输入2个点,输出它们的最近公共祖先. 2.裸的最近公共祖先. 3. dfs+ST在线算法: /* LCA(POJ 1330) 在线算法 DFS+ST ...

随机推荐

  1. 快速排序和二分查找(Go)

    package main import ( "fmt" "sync") var waitGroup sync.WaitGroup func main() { d ...

  2. ES6中变量的解构赋值

    1.数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 输出: 上面代码表示,可以从数组中提取值,按照对应位置,对变 ...

  3. Navicat Premium Mac 12 破解方法-亲测成功

    参照这2篇文档,破解成功了.操作步骤写的很清楚,不再缀述,只记录一下自己破解过程中,认为要注意的点.以免以后再多花时间熟悉重新熟悉操作步骤 Mac安装Navicat(破解版) Navicat Prem ...

  4. Openstack_单元测试工具 tox

    目录 目录 扩展阅读 Openstack 的单元测试工具 单元测试工具使用流程 tox toxini 参考文章 扩展阅读 Python Mock的入门 Openstack 的单元测试工具 unitte ...

  5. django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.的解决办法

    如题,这个错误的解决办法如下: 在代码文件的最上方添加以下代码: import os,django os.environ.setdefault("DJANGO_SETTINGS_MODULE ...

  6. 中国MOOC_零基础学Java语言_第3周 循环_1奇偶个数

    第3周编程题 查看帮助 返回   第3周编程题 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截 ...

  7. 使用JS区分客户端

    之前遇到,上司这样一个指示. 他说:“你看,能不能帮我解决一下,ipad自带的,键盘问题.” 就是我们做的这个项目,是一个 web项目,然后 要求 电脑端 和 平板都可以访问.在日期输入框的地方.他们 ...

  8. 操作系统(3)实验相关原理——bootloader启动uCore

    x86启动顺序 CS+EIP决定启动地址. CS部分后面又4个0,相当于是左移了4位.总之就是要让CS左移4位之后加上EIP来得到要跳转的地址. 0x7c00地方开始的512字节的内容就是bootlo ...

  9. tensorflow学习之tf.truncated_normal和tf.random_noraml的区别

    tf版本1.13.1,CPU 最近在tf里新学了一个函数,一查发现和tf.random_normal差不多,于是记录一下.. 1.首先是tf.truncated_normal函数 tf.truncat ...

  10. 关于Goroutine与Channel

    关于Goroutine的原理 原理上的内容比较多,比如goroutine启动的时候要执行哪些相关的操作,一点一点的补充一下. channel的基本原理 channel是go语言中的特殊的机制,既可以同 ...