CF510D Fox And Jumping】的更多相关文章

D. Fox And Jumping 题目连接: http://codeforces.com/contest/510/problem/D Description Fox Ciel is playing a game. In this game there is an infinite long tape with cells indexed by integers (positive, negative and zero). At the beginning she is standing at…
Fox And Jumping 题目链接:http://codeforces.com/problemset/problem/512/B dp 若所选卡片能到达区间内任意点,那么所选卡片的最大公约数为1(a*x+b*y=gcd(a,b)=1). 定义状态dp[i]:获得i需要的最小的代价. 代码如下: #include<cstdio> #include<map> #include<iostream> #define LL long long using namespace…
B. Fox And Jumping time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Fox Ciel is playing a game. In this game there is an infinite long tape with cells indexed by integers (positive, negativ…
Codeforces题号:#510D 出处: Codeforces 主要算法:map+DP 难度:4.6 思路分析: 题意:给出n张卡片,分别有l[i]和c[i].在一条无限长的纸带上,你可以选择花c[i]的钱来购买卡片i,从此以后可以向左或向右条l[i]个单位.购买其他卡片后,可以获得更多的跳跃单位.先要求至少花多少元钱才能够任意跳到纸带上任意一个位置.若不行,输出-1. 首先分析如果只有两个技能的情况.若这两个技能的跳跃长度有最大公约数(x),且满足(x > 1),则一定能跳到任意一个位置.…
根据裴蜀定理,当且仅当选出来的集合的L[i]的gcd等于1时,才能表示任何数. 考虑普通的dp,dp[i][j]表示前i个数gcd为j的最少花费,j比较大,但状态数不多,拿个map转移就好了. $ \bigodot $ 技巧&套路: 裴蜀定理,gcd为1表示任何数. 当状态数不多的时候,map暴力转移dp. #include <bits/stdc++.h> using namespace std; void Work(int &x) { ; i * i <= x; ++i…
[题目链接]:http://codeforces.com/contest/510/problem/D [题意] 你可以买n种卡片; 每种卡片的花费对应c[i]; 当你拥有了第i种卡片之后; 你可以在任意位置x跳到x-l[i]或x+r[i]; 问你至少要花费多少钱买卡片,使得你能够跳跃到坐标轴上的任意一个整数点; [题解] 有个结论: 直接记下来吧 如果gcd(a,b)==1,那么所有的点就都能跳跃到了; 所以问题就转化为,给你n个长度,让你在这n个长度中选取若干个; 使得它们的gcd为1; 且要…
题目链接 题意说的是,有n种卡片,使用第i种卡片可以使当前自己在数轴上的位置移动 l[i],要获得使用第i种卡片的代价是 c[i],求能使自己移动到数轴上任意位置的最小代价,如果不可能则输出-1 当前所拥有的卡片由1->n,逐渐调整map里的值 #include<bits/stdc++.h> using namespace std; ; int n; int c[N],l[N]; map<int,int> dp; int gcd(int a,int b) { return b…
CF习题集三 一.CF8C Looking for Order 题目描述 \(Lena\)喜欢秩序井然的生活.一天,她要去上大学了.突然,她发现整个房间乱糟糟的--她的手提包里的物品都散落在了地上.她想把所有的物品都放回她的手提包.但是,这里有一点问题:她一次最多只能拿两个物品,她也不能移动她的手提包.并且,因为她爱整洁的习惯,如果她拿起了一个物品,她也不能将它放在其他地方,除非放回她的手提包. \(Lena\)把她的房间划分为了一个平面直角坐标系.现在Lena给你她的手提包和每个散落的物品的坐…
简介 扩展欧几里得算法(简称扩欧,exgcd),用来求下列方程的一组解: \[ax+by=(a,b) \] 算法介绍 1. 裴蜀定理 裴蜀定理(Bézout's lemma):若 \(a\in \mathbb{Z},b \in \mathbb{Z}\) 且 \(a,b\) 不全为 \(0\),则关于 \(x,y\) 的方程 \(ax+by=(a,b)\) 一定有整数解. 证明:略(其实是不会) 2. 欧几里得定理 欧几里得定理:\((a,b)=(b,a \bmod b)\). 证明:略(其实还是…
A. Fox And Snake 代码可能有点挫,但能够快速A掉就够了. #include <cstdio> int main() { //freopen("in.txt", "r", stdin); int n, m; scanf("%d%d", &n, &m); ; i <= n; ++i) { == || i % == ) ; j < m; ++j) printf("#"); ==…