摘要:
http://162.105.81.212/JudgeOnline/problem?id=1222题意:有一个5*6的方阵,每个位置都表示按钮和灯,1表示亮,0表示灭。每当按下(i,j)时,(i,j)和(i-1,j)、(i+1,j)、(i,j-1)(i,j+1)都会改变,亮的变灭,灭的变亮;问在这样的一个方阵中按下哪些按钮可以把整个方阵都变成灭的,这时1表示按了,0表示没按。此题也可以用枚举来写:http://iiacm.net/2010/07/pku-1222-extended-lights-out/转载分析:这个游戏的名字叫做Lights Out。一个板子上面有MxN个按钮,按钮也是灯。每 阅读全文
摘要:
分治算法 君主和殖民者们所成功运用的分而治之策略也可以运用到高效率的计算机算法的设计过程中。本章将首先介绍怎样在算法设计领域应用这一古老的策略,然后将利用这一策略解决如下问题:最小最大问题、矩阵乘法、残缺棋盘、排序、选择和一个计算几何问题——找出二维空间中距离最近的两个点。本章给出了用来分析分而治之算法复杂性的数学方法,并通过推导最小最大问题和排序问题的复杂性下限来证明分而治之算法对于求解这两种问题是最优的(因为算法的复杂性与下限一致)。1 算法思想 分而治之方法与软件设计的模块化方法非常相似。为了解决一个大的问题,可以: 1) 把它分成两个或多个更小的问题; 2) 分别解决每个小问题; 3. 阅读全文
摘要:
1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最近点对问题,用分治 1008 简单题 1009 贪心 1010 搜索题,剪枝很关键 1011 1012 简单题 1013 简单题(有个小陷阱) 1014 简单题 1015 可以看作搜索题吧 1016 经典的搜索 1017 简单数学题 1018 简单数学题 1019 简单数学题 1020 简单的字符串处理 1021 找规律的数学题 1022 数据结构的题(栈的应用) 1023 特殊的数(Catal 阅读全文
摘要:
方法一#include<stdio.h>int main(){ int a,b,n; while(scanf("%d %d %d",&a,&b,&n)!=EOF&&(a+b+n)!=0){ int f1=1,f2=1,f3=1,t,r[8][8]={0},i,flag=0,x; for(i=3;i<=n;i++) { f3=(a*f2+b*f1)%7; r[f1][f2]=i; f1=f2; f2=f3; if(r[f1][f2]&&flag==0) { t=i-r[f1][f2]+1; i=r[f1 阅读全文
摘要:
#include<stdio.h>main(){ int a,c,d,i,j,max; char b[1001][16]; while(1) { max=0; scanf("%d",&a); if(a==0) break; for(i=1;i<=a;i++) scanf("%s",b[i]); for(i=1;i<=a;i++) {c=0; for(j=i+1;j<=a;j++) if(strcmp(b[i],b[j])==0) { c++; } if(c>max) {max=c;d=i;} } printf( 阅读全文
摘要:
#include <stdio.h>int a,b[100001],sum;int main(){ int t,i,n,j,k,a1,b1,max; scanf("%d",&t); for(j=1;j<=t;j++) { scanf("%d",&n); max=-9999;sum=0; for(i=k=1;i<=n;i++) { scanf("%d",&a); sum+=a; if(max<sum) { max=sum; b1=i;a1=k; } if(sum<0) {sum 阅读全文
摘要:
#include<string.h>#include <stdio.h>int main(){ char a[1000],b[1000]; char a1[1001],b1[1001],c[1001]; int i,j,k,flag,pos,la,lb; scanf("%d",&k); for(j=1;j<=k;j++) { scanf("%s %s",a,b); la=strlen(a); lb=strlen(b); for(i=0;i<1001-la;i++) { a1[i]='0'; } 阅读全文