最初的第一印象是和组合数一个性质的题目.所以用了回溯法,结果,你懂的... #include<stdio.h> #include<math.h> void dfs(int n,int d,int num[]); int k=0; int max=0; int main(){ while(scanf("%d",&k)!=EOF){ int num[57]={0}; num[1]=1; dfs(1,1,num); printf("%d\n"…
擅长排列的小明 II 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 小明十分聪明,而且十分擅长排列计算. 有一天小明心血来潮想考考你,他给了你一个正整数n,序列1,2,3,4,5......n满足以下情况的排列: 1.第一个数必须是1 2.相邻两个数之差不大于2 你的任务是给出排列的种数.   输入 多组数据.每组数据中输入一个正整数n(n<=55). 输出 输出种数. 样例输入 4 样例输出 4 来源 Ural 上传者 李文鑫 解题:俺找规律才找出来的,开始…
这题目是小学奥数题目,方法可以百度到,但是,有个难点就是,数据类型大小不够,如果是1000x1000的矩阵,那么就会超过int的范围,所以,就引进了long long的数据类型 #include<stdio.h> int main(){ long long n,m,max; while(scanf("%lld %lld",&n,&m)!=EOF){ n=(n+1)*n/2; m=(m+1)*m/2; max=n*m; printf("%lld\n&…
心急的C小加 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间.因为急着去约会,C小加想在最短的时间内把木棒处理完,你能告诉他应该怎样做吗? 输入 第一行是一个整数T(1<T<1500),表示输入数据一共有T组. 每组测试数据的第一行是一个整数N(1&l…
目录: [C#小知识]C#中一些易混淆概念总结--------数据类型存储位置,方法调用,out和ref参数的使用 [C#小知识]C#中一些易混淆概念总结(二)--------构造函数,this关键字,部分类,枚举 [C#小知识]C#中一些易混淆概念总结(三)--------结构,GC回收,静态成员,静态类 [C#小知识]C#中一些易混淆概念总结(四)---------解析Console.WriteLine() ----------------------------------分割线-----…
石子合并(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述     有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆.求出总的代价最小值. 输入 有多组测试数据,输入到文件结束. 每组测试数据第一行有一个整数n,表示有n堆石子. 接下来的一行有n(0< n <200)个数,分别表示这n堆石子的数目,用空格隔开 输出 输出总代价的最小值,…
#include<stdio.h> struct AC { int x,y; }a[1000004]; int main() { int i,j,k=0;a[125].x=1,a[521].y=1; for(i=0; i<1000003; i++) { int c[3]={0}; if(i%10==5||i%100/10==5||i%1000/100==5||i%10000/1000==5||i%100000/10000==5||i%1000000/100000==5) c[2]=1;…
#include<stdio.h> #include<stdlib.h> #define max(x,y) x>y?x:y #define MAXX 100005 int num[MAXX] = {0}; int mum[MAXX] = {0}; int sum[2][MAXX] = {0}; int comp ( const void *a, const void *b ) { return * ( int * ) a - * ( int * ) b; } int main…
作为菜鸟一枚,对子串和的代码完全就是硬算 的..结果是TLE #include<stdio.h> int jh(int x,int y,int num[],int sum[]); int idea[1000][1000]={0}; int main() { int num[1001]; int sum[1001]; int n,m,k=0; int x,y,z; int max=0; scanf("%d",&n); while(n--){ scanf("%…
#include<stdio.h> int num[100]; int pnum(int n,int v); int mv=0; int main(){ int n,v; scanf("%d %d",&n,&v); mv=v; pnum(n,v); return 0; } int pnum(int n,int v){ int i; if(v==0){ for(i=mv ;i>0;i--){ printf("%d",num[i]);…