HDU 5327 5328 5335
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stack>
#include <algorithm>
#include <queue>
#include <map>
#include <cmath>
#define eps 0.00000001
#define pi acos(-1,0)
//#define pr 999983
using namespace std;
int a[100100]={0},b[20]={0};
void init()
{
for (int i=1; i<100000; i++)
{
int z=0,k=i;
while (k>0)
{
b[z]=k%10;
k=k/10;
z++;
}
sort(b,b+z);
int f=1;
for (int j=1; j<z; j++)
if (b[j]==b[j-1]) f=0;
a[i]=a[i-1]+f;
// printf("a[%d]=%d\n",i,a[i]);
}
return ;
}
int main()
{
int T;
init();
scanf("%d",&T);
while (T--)
{
int l,r;
scanf("%d%d",&l,&r);
printf("%d\n",a[r]-a[l-1]);
}
return 0;
}
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stack>
#include <algorithm>
#include <queue>
#include <map>
#include <cmath>
#define eps 0.00000001
#define DBL_MIN 2.2250738585072014e-308 /* min positive value */
#define pi acos(-1,0)
//#define pr 999983
using namespace std;
int a[1000100]= {0};
double b[1000100]= {0};
int n,_max;
int main()
{
int T;
scanf("%d",&T);
a[0]= 0x80000000;
b[0]=DBL_MIN ;
while (T--)
{
double x,y;
int sc,sj;
scanf("%d",&n);
scanf("%lf",&x);
sc=1;
sj=1;
_max=0x80000000;
for (int i=1; i<n; i++)
{
scanf("%lf",&y);
a[i]=y-x;
b[i]=y/x*1.0;
x=y;
if (a[i]==a[i-1])
{
sc++;
}
else
{
if (sc>_max) _max=sc;
sc=1;
}
if (b[i]-b[i-1]<0.0000001 && b[i-1]-b[i]<0.0000001) sj++;
else
{
if (sj>_max) _max=sj;
sj=1;
}
}
if (n==1)
{
printf("1\n");
continue;
}
// for (int i=1;i<n;i++)
// printf("i=%d a[i]=%d b[i]=%f\n",i,a[i],b[i]);
if (sc>_max) _max=sc;
if (sj>_max) _max=sj;
printf("%d\n",_max+1);
}
return 0;
}
#pragma comment(linker, "/STACK:1024000000,1024000000")
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stack>
#include <algorithm>
#include <queue>
#include <map>
#include <cmath>
#define eps 0.00000001
#define pi acos(-1,0)
//#define pr 999983
using namespace std;
int a[1010][1010]= {0}; ///
int b[1010][1010]= {0}; ///
bool c[1010][1010]= {0}; ///
int n,m,_min,zkc;
char s[1010];
int init(int x,int y,int k)
{
if (x+y > _min) _min=x+y;
// printf("_min=%d\n",_min);
if (y<m && b[x][y+1]==0 && a[x][y+1]==-1)
{
c[x][y+1]=1;
a[x][y+1]=1;
init(x,y+1,k+1);
}
if (x>1 && b[x-1][y]==0 && a[x-1][y]==-1)
{
c[x-1][y]=1;
a[x-1][y]=1;
init(x-1,y,k+1);
}
if (y>1 && b[x][y-1]==0 && a[x][y-1]==-1)
{
c[x][y-1]=1;
a[x][y-1]=1;
init(x,y-1,k+1);
}
if (x<n && b[x+1][y]==0 && a[x+1][y]==-1)
{
c[x+1][y]=1;
a[x+1][y]=1;
init(x+1,y,k+1);
}
return 0;
}
int fun(int z)
{
int jj=min(z,m),ii=z-jj+1;
bool f=1;
// printf("z=%d ii=%d jj=%d\n",z,ii,jj);
while (ii<=n && jj>0)
{
if (c[ii-1][jj]==1 || c[ii][jj-1]==1)
{
c[ii][jj]=1;
if (b[ii][jj]==0) f=0;
}
ii++;
jj--;
}
// for (int i=1; i<=n; i++)
// {
// for (int j=1; j<=m; j++)
// {
// printf("%d",c[i][j]);
// }
// printf("\n");
// }
if (f==0)
{
jj=min(z,m);
ii=z-jj+1;
while (ii<=n && jj>0)
{
if (b[ii][jj]==1) c[ii][jj]=0;
ii++;
jj--;
}
}
if (z+1<m+n) fun(z+1);
return 0;
}
int print(int ik,int jk)
{
if (ik+jk>zkc)
{
if (c[ik-1][jk]==1)
{
print(ik-1,jk);
}
else if (c[ik][jk-1]==1)
{
print(ik,jk-1);
}
printf("%d",b[ik][jk]);
}
if (ik+jk==zkc)
{
if (b[ik][jk]==1) printf("1");
}
return 0;
}
int main()
{
// freopen("in.txt","r",stdin);
int T;
scanf("%d",&T);
while(T--)
{
_min=-0x7f7f7f;
memset(a,-1,sizeof(a));
memset(c,0,sizeof(c));
scanf("%d%d",&n,&m);
for(int i=1; i<=n; i++)
{
scanf("%s",s+1);
for(int j=1; j<=m; j++)
{
b[i][j] = s[j] - '0';
}
}
c[1][1]=1;
if (b[1][1]==0)
{
// printf("OK\n");
init(1,1,0);
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
if (c[i][j]==1) init(i,j,0);
zkc=_min;
// printf("zkc=%d\n",zkc);
}
else
{
zkc=2;
}
// printf("zkc%d\n",zkc);
if (m==1 && n==1)
{
printf("%d\n",b[1][1]);
continue;
}
if (zkc!=m+n)
{
fun(zkc);
print(n,m);
}
else
printf("0");
printf("\n");
// printf("zkc=%d\n",zkc);
// for (int i=1; i<=n; i++)
// {
// for (int j=1; j<=m; j++)
// {
// printf("%d",c[i][j]);
// }
// printf("\n");
// }
}
return 0;
}
最近几场比赛的题目都比较简单 但是他们的判题系统比较坑 搜容易破栈(比赛完了再交就不会破栈)
而且 最小值那点真是坑死了无数人 我就不同吐槽了
比了四场比赛 感觉每次都只能签到 偶尔还签不到 看着大牛们aaaa 我们wawawa 心情什么都是次要的了 每次刀到脖子边上
想了想都还是放下了 人还是要有点希望的 说不定下一场还能签到呢
嗯嗯 继续水下去吧。。。