Dima and Magic Guitar CodeForces - 366E】的更多相关文章

Dima and Magic Guitar CodeForces - 366E 题意: http://blog.csdn.net/u011026968/article/details/38716425http://vawait.com/2013/11/codeforces-366e/http://www.cnblogs.com/jianglangcaijin/archive/2013/11/25/3441319.html 对于s中任意相邻两个数x和y,都要求在矩形中找出任意两个分别等于x和y的点…
题目链接:http://codeforces.com/problemset/problem/366/E 题意:给出一个n*m的数字矩阵A,每个矩阵元素的范围[1,K].给出一个长度为s的数字串B,B的每个元素的范围[1,K].将B中的每个元素t用A中的一个位置(i,j)代替,满足A[i][j]=B[t].这样就得到一个长度为s的位置序列.定义相邻两个位置的距离为曼哈顿距离,定义序列的最大距离为每两个相邻元素距离最大值.求一种替换方案使得序列的最大距离最大. 思路:最后转化成两个位置集合S1,S2…
题目:http://codeforces.com/problemset/problem/366/E 事实上就是找 n * m 矩阵中数字 x 和 数字 y 的最远距离. 方法參照武森的论文<浅谈信息学中的"0"和"1"> 先约定符号:xi,xj  (i,j)是x的下标,当然.矩阵中的值是能够反复的 上面是武森的论文原文.加上我之前的符号约定,我在做点解释: 事实上那个max={四种可能}  更好的写法是: |xi-yi|+|xj-yj|=max((1),…
http://codeforces.com/contest/366/problem/E |x1-x2|+|y1-y2|有四种情况 1.-(x1-x2)+(y1-y2); 2.(x1-x2)-(y1-y2); 3.-(x1-x2)-(y1-y2); 4.(x1-x2)+(y1-y2); 可以先把没一个数的坐标分为上面的四种情况存起来,然后在S序列相邻的两个数的曼哈顿距离最大就是两个数中的一个数的四种情况最大值减去另一个数的最小值. #include <cstdio> #include <c…
Magic Numbers CodeForces - 628D dp函数中:pos表示当前处理到从前向后的第i位(从1开始编号),remain表示处理到当前位为止共产生了除以m的余数remain. 不一定要把a减一,也可以特判a自身,或者直接改记忆化搜索. #include<cstdio> #include<cstring> #define md 1000000007 typedef long long LL; LL m,d,ans1,ans2,len1; LL ans[][][]…
E. Magic Stones time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Grigory has nn magic stones, conveniently numbered from 11 to nn. The charge of the ii-th stone is equal to cici. Sometimes G…
ZS the Coder and Chris the Baboon arrived at the entrance of Udayland. There is a n × n magic grid on the entrance which is filled with integers. Chris noticed that exactly one of the cells in the grid is empty, and to enter Udayland, they need to fi…
大意:给定n*m矩阵, 初始位置(r,c), 每一步随机移动到权值小于当前点的位置, 得分为移动距离的平方, 求得分期望. 直接暴力dp的话复杂度是O(n^4), 把距离平方拆开化简一下, 可以O(n^2logn). #include <iostream> #include <sstream> #include <algorithm> #include <cstdio> #include <math.h> #include <set>…
A---Make a triangle! http://codeforces.com/contest/1064/problem/A 题意: 给定三个整数表示三角形的边.每次给边长可以加一,问至少要加多少才能使这三个边成为一个三角形. 思路: 找到最大的边,然后最大边 + 1减剩下两条边就行了.负数的话就是0. #include<iostream> #include<cmath> #include<algorithm> #include<stdio.h> #i…
详见:http://robotcator.logdown.com/posts/221514-codeforces-round-262-div-2 1:A. Vasya and Socks   http://codeforces.com/contest/460/problem/A 有n双袜子,每天穿一双然后扔掉.每隔m天买一双新袜子,问最多少天后没有袜子穿. . 简单思维题:曾经不注重这方面的训练,结果做了比較久.这样的题自己边模拟边想.只是要多考虑trick ```c++ int main(){…