本文主要是介绍BestCoder Round #45,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
又把自己给坑了,,,,这样做下去太没意思了,要么好好干下去,要么趁早走人
A题水
B题,开始想了半天硬是没想出来,然后开始hack之后才写完算法,提交WA。想了半天感觉哪里都是对的,,,,,其实是自己太垃圾,简单的地方都能写错。
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define MAX 1100
using namespace std;int a[MAX][MAX],b[MAX][MAX],s[MAX];
int n,q;int dfs(int front,int rear){if(b[front][rear]!=-1)return b[front][rear];if(front+1==rear)return b[front][rear]=(s[front]>s[rear]?1:0);if(front==rear)return b[front][rear]=0;return b[front][rear]=a[front][rear]+dfs(front+1,rear);
}int main(){int aa,bb;while(~scanf("%d %d",&n,&q)&&n){memset(a,0,sizeof(a));memset(b,-1,sizeof(b));for(int i=0;i<n;i++)scanf("%d",&s[i]);for(int i=0;i<n;i++){int temp=0;for(int j=i+1;j<n;j++){if(s[i]>s[j]){temp++;}a[i][j]=temp;//硬是把这行写在了括号里面}}for(int i=0;i<q;i++){scanf("%d %d",&aa,&bb);printf("%d\n",dfs(aa-1,bb-1));}}return 0;
}
这篇关于BestCoder Round #45的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!