if和for的几个经典题目】的更多相关文章

本文来自:http://www.matrix67.com/blog/archives/tag/poj大牛的博文学习学习 节选如下部分:矩阵乘法的两个重要性质:一,矩阵乘法不满足交换律:二,矩阵乘法满足结合律经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置.操作有平移.缩放.翻转和旋转    这 里的操作是对所有点同时进行的.其中翻转是以坐标轴为对称轴进行翻转(两种情况),旋转则以原点为中心.如果对每个点分别进行模拟,那么m个操作总共耗时 O(mn).利用矩阵乘法可…
好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的人,今天在这里简单写一下.这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质.    不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符.在数学中,一个矩阵说穿了就是一个二维数组.一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和.比如,下面的算式表示一个2行2列的矩阵乘以2行3列的矩阵…
POJ1160, post office.动态规划的经典题目.呃,又是经典题目,DP部分的经典题目怎就这么多.木有办法,事实就这样. 求:在村庄内建邮局,要使村庄到邮局的距离和最小. 设有m个村庄,分别为 V1 V2 V3 - Vm, 要建n个邮局,分别为P1 P2 P3 - Pn. 在DP的问题中,经常有从m个物体中选n个物体的情况,本题显然也属于这种情况.一般可以这样考虑:假设已经选了1个,那么就成了在m-1个中选n-1个的问题了. 对于此题,也可以考虑先建一个邮局.建在哪里呢?不妨设,该邮…
/** * Find the contiguous subarray within an array (containing at least one number) * which has the largest sum. For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the contiguous subarray [4,-1,2,1] has the largest sum = 6. click to show more prac…
/***********Ryear.java begin********************/ import java.util.Scanner;public class Ryear { /** * @param args */ public static void main(String[] args) { /** * 编写程序,判断给定的某个年份是否是闰年. * 闰年的判断规则如下: * (1)若某个年份能被4整除但不能被100整除,则是闰年. * (2)若某个年份能被400整除,则也是…
在算法竞赛中,很多问题是来不及用数学公式推导出来的.或者说根本就找不到数学规律,这时我们就需要使用枚举来暴力破解. 不过枚举也是需要脑子的,一味的暴力只能超时.因此我这里选择了几道mooc上经典的题目来做复习. 1.完美立方. 思路: 从2到N枚举a的值,2到a枚举d的值,2到d的枚举b的值,2到c枚举b的值.当 满足a*a*a==b*b*b+c*c*c+d*d*d 的时候对结果输出. 代码如下: #include <iostream> using namespace std; int mai…
meeting:给正n边形每个点染上黑色或者白色,问有多少个同色的等腰三角形. 以正五边形为例这里将最上面的点作为顶点,得到若干对相等的腰 ,注意到以最上面的点作为顶点的等腰三角形的个数,等于颜色相等且都为顶点颜色的对称点的个数. O(n^2)统计即可. PS:注意减去等边三角形的情况. #include <cstdio> #include <cstring> #include <iostream> #include <cstdlib> #include &…
题目1:实现如下效果 CREATE TABLE IF NOT EXISTS tb_amount( `Id` INT NOT NULL AUTO_INCREMENT, `), `), `Amount` ,), PRIMARY KEY(`Id`) ); ', '1.1'); ', '1.2'); ', '1.3'); ', '1.4'); ', '2.1'); ', '2.2'); ', '2.3'); ', '2.4'); SELECT `Year`, ( AND m.`Year`=tb_amou…
*[程序8]*题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.* 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. 思考: 对于以上计算方法可以拆解为:5*2*10^0+4*2*10^1+3*2*10^2+2*2*10^3+1*2*10^4 对应的程序实现如下: public class Test08 { public static void main(String[] args) { Scanner scan = new Sc…
问题描述: 有n个人围成一圈,顺序排号.从第一个人开始报数(1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号. 分析: 首先由用户输入人数n,然后对这n个人进行编号[因为如果不编号的话,我们就不能知道最后是哪位童鞋留下来了:)] 然后就开始了一圈一圈的循环,不断形成新的圈子,不断有人被淘汰,那么循环到什么时候截止呢?对只剩最后一个人,也就是说淘汰n-1了个人的时候,这个时候停止循环. 在实际情况中,应该是这n个人一开始围成了一个大圈子,然后随着不断的淘汰,圈子不断减小,最后剩下的…