POJ1068 解题报告
2018-01-03 21:22
323 查看
POJ1068 解题报告
第一部分是我最初些的,后面的是从另外一个地方copy的;https://www.cnblogs.com/zzhzz/p/5837815.html
#include <iostream> #include <string.h> using namespace std; /* S (((()()()))) P-sequence 4 5 6666 W-sequence 1 1 1456 */ //#define TEST #define SIZE 30 char s[SIZE]; char buf[SIZE*30]={"466668999"}; char out[20]; int parse(int index){ int counter = 0; int right=1; for(int i=index-1;i>=0;i--){ if(s[i]==')'){ right++; }else{ right--; counter++; if(right==0) return counter; } } } void construct(char *in){ int counter=0; int index=0; int gap; for(int i=0;i<strlen(in);i++){ if((gap=in[i]-'0'-counter)>0){ for(int j=0;j<gap;j++){ s[index++]='('; } counter = in[i]-'0'; } s[index++]=')'; } s[index]=0; index = 0; for(int i=0;i<strlen(s);i++){ if(s[i]==')') out[index++]=parse(i)+'0'; } out[index]=0; //print for(int i=0;i<index;i++){ 4000 cout <<out[i]<<" "; } cout<<endl; } #if defined(TEST) int main() { construct(); } #else int main() { int cases; //number of cases int n,i,j; char *p=buf; cin >> cases; for(i=0;i<cases;i++){ cin >> n; for(j=0;j<n;j++){ cin >>p[j]; } p[j]=0; //p +=strlen(p)+1; construct(p); } /* p=buf; for(i=0;i<cases;i++){ construct(p); p +=strlen(p)+1; } */ return 0; } #endif
https://www.cnblogs.com/zzhzz/p/5837815.html
#include <iostream> #include <stack> #include <cstring> using namespace std; int main(){ int N,a[30]; cin >> N; while(N--){ int n; cin >> n; a[0] = 0; for(int i = 1; i <= n; i++){ cin >> a[i]; int j = i - 1; while(a[i] - a[j] < i - j) j--; cout << (i-j) <<' '; } cout << endl; } return 0; }
相关文章推荐
- POJ 1068 解题报告
- poj 1068解题报告
- poj1068解题报告(模拟类)
- poj 1068 Parencodings/bnuoj 1187 Parencodings 解题报告
- POJ 1068 解题报告
- POJ-1068解题报告
- poj_1068_Parencodings_解题报告
- POJ1068 Parencodings 解题报告
- POJ 1068解题报告
- 解题报告之POJ1068—Parencodings
- poj2312解题报告
- poj 1041-Dividing解题报告-可行性背包问题
- poj2406解题报告
- POJ2488 A Knight's Journey 解题报告
- POJ 4047 Garden (线段树 - 区间增减、区间查询) -- 解题报告
- POJ 2833 解题报告
- poj解题报告——1080
- poj1698解题报告(最大流 EK算法)
- POJ 3006解题报告
- POJ 2707 Copier Reduction 解题报告