Beautiful Palindrome Number

题意:求N里面有多少个符合要求的数字(数字要求:回文数,且前一半部分是不严格递增)

解法:打表

#include<bits/stdc++.h>
using namespace std;
int find1(int index)
{
int count1 = ;
int number = ; //记录数位上的回文数,如个位回文数为9
int w = ; //记录数位 long half; //保存回文数的左半边的结果
long h = ; //回文数的左半边的起始基数
long res; //结果 while(true)
{
if(w > && w% == ) //每进两个数位,回文数乘以10
{
number *= ;
}
w++; //数位加一
if(count1 + number > index) //回文数大于查找的回数,跳出
break; count1+= number; //回文数加上当前数位上的回文数
} index -= count1; //在当前数位上的位置。如w=5,index=50,则万位上的第50个回文数是我们所求 for(int i = ; i < (w-) / ; i++) //求回文数的左半边的基数,如回文数在万位上,则为100
{
h *= ;
} half = h + index; //回文数的左半边,如100 + 50 = 150 res = half; if(w% != ) //如果为奇数,则中间那个数不必算入右半边了!
half /=; while(half != ) //拼接回文数
{
res = res * + half % ;
half /= ;
} return res;
}
int cmd(int x)
{
int cot=;
int a[];
while(x)
{
a[cot++]=x%;
x/=;
}
int pos=a[];
if(cot%==)
{
for(int i=; i<cot/; i++)
{
if(pos<=a[i])
{
pos=a[i];
}
else
{
return ;
}
}
}
else
{
for(int i=; i<=cot/; i++)
{
if(pos<=a[i])
{
pos=a[i];
}
else
{
return ;
}
}
} return ;
}
int a[]={,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
,};
int main()
{
int t;
int n;
cin>>t;
while(t--)
{
cin>>n;
for(int i=;;i++)
{
if(a[i]==) break;
else if(a[i]>n)
{
cout<<i<<endl;
break;
}
}
}
return ;
}

五子棋

解法:其实不难,判断却非常复杂,首先当然只要判断是否成为5子。然后判断黑白棋的个数是否满足要求,接下来判断是白子后下还是黑子后下。再根据这两种情况判断,具体看代码判断

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int ans[][];
//int n,m,a,b;
int Min=(1e9);
string a[];
int x1,x2,x3,x4,x5,x6,x7,x8;
int cmd(char s)
{
int M=-;
for(int i=; i<; i++)
{ for(int j=; j<; j++)
{
x1=,x2=,x3=,x4=,x5=,x6=,x7=,x8=;
if(a[i][j]==s)
{
//cot1++;
// cout<<"/"<<endl;
int ans1=i;
int ans2=j;
while(ans1>=)
{
if(a[ans1][j]==s)
{
// a[i][ans2]='.';
ans1--;
x1++;
}
else
{
break;
}
}
// cout<<x1<<"A"<<endl;
ans1=i;
ans2=j;
//cout<<ans1<<" "<<ans2<<endl;
while(ans1<)
{
if(a[ans1][j]==s)
{
// a[ans1][j]='.';
ans1++;
x2++;
}
else
{
break;
}
}
// cout<<x2<<"B"<<endl;
ans1=i;
ans2=j;
while(ans2>=)
{
if(a[i][ans2]==s)
{
// a[i][ans2]='.';
ans2--;
x3++;
}
else
{
break;
}
}
// cout<<x3<<"C"<<endl;
ans1=i;
ans2=j;
while(ans2<)
{
// cout<<i<<" "<<ans2<<endl;
// cout<<a[i][ans2]<<endl;
if(a[i][ans2]==s)
{
// cout<<"A"<<endl;
// a[i][ans2]='.';
ans2++;
x4++;
}
else
{
break;
}
}
//cout<<x4<<"D"<<endl;
ans1=i;
ans2=j;
while(ans1>=&&ans2>=)
{
if(a[ans1][ans2]==s)
{
// a[ans1][ans2]='.';
ans1--;
ans2--;
x5++;
}
else
{
break;
}
}
//cout<<x5<<endl;
ans1=i;
ans2=j;
while(ans1<&&ans2<)
{
if(a[ans1][ans2]==s)
{
// a[ans1][ans2]='.';
ans1++;
ans2++;
x6++;
}
else
{
break;
}
}
//cout<<x6<<endl;
ans1=i;
ans2=j;
while(ans1>=&&ans2<)
{
if(a[ans1][ans2]==s)
{
// a[ans1][ans2]='.';
ans1--;
ans2++;
x7++;
}
else
{
break;
}
}
// cout<<x7<<endl;
ans1=i;
ans2=j;
while(ans1<&&ans2>=)
{
if(a[ans1][ans2]==s)
{
//a[ans1][ans2]='.';
ans1++;
ans2--;
x8++;
}
else
{
break;
}
}
// cout<<x1<<" "<<x2<<endl;
// cout<<x3<<" "<<x4<<endl;
// cout<<x5<<" "<<x6<<endl;
// cout<<x7<<" "<<x8<<endl;
//cout<<x8<<endl;
M=max({x1+x2-,x3+x4-,x5+x6-,x7+x8-,M});
} }
// M=-1;
}
if(M>=)
{
return ;
}
else
{
return ;
}
}
int cmp(char s)
{
for(int i=; i<; i++)
{
for(int j=; j<; j++)
{
if(a[i][j]==s)
{
a[i][j]='.';
for(int k=; k<; k++)
{
//cout<<a[k]<<endl;
}
// cout<<cmd(s)<<endl;
if(!cmd(s))
{
return ;
}
// cout<<endl;
a[i][j]=s;
}
}
}
return ;
}
int main()
{ int t;
cin>>t;
while(t--)
{
x1=,x2=,x3=,x4=,x5=,x6=,x7=,x8=;
int M=-;
int cot1=;
int cot2=;
int N=-;
for(int i=; i<; i++)
{
cin>>a[i];
for(int j=; j<; j++)
{
if(a[i][j]=='@')
{
cot1++;
}
else if(a[i][j]=='X')
{
cot2++;
}
}
}
if(cot2==cot1+ || cot1 == cot2)
{
int wb = cmd('X');
int ww = cmd('@');
if(cot2==cot1+ && wb)
{
if(ww)
cout << "wrong state" << endl;
else
{
if(cmp('X'))cout << "black" << endl;
else cout << "wrong state" << endl;
}
}
else if(ww && cot1 == cot2)
{
if(wb)
cout << "wrong state" << endl;
else
{
if(cmp('@'))cout << "white" << endl;
else cout << "wrong state" << endl;
}
}
else if(!wb && !ww)cout << "continue" << endl;
else cout << "wrong state" << endl;
}
else cout << "wrong state" << endl;
}
return ;
}

丁丁历险记

解法:数据不大,跑最短路,再求1-A到A+B哪一个更短

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int ans[][];
int n,m,a,b;
int Min=(1e9);
int main()
{
int t;
cin>>t;
while(t--)
{
for(int i=; i<=; i++)
{
for(int j=; j<=; j++)
{
ans[i][j]=Min;
}
}
cin>>a>>b>>m;
for(int i=;i<=m;i++)
{
int s,e;
cin>>s>>e;
if(s!=e)
{
ans[s][e]=;
ans[e][s]=;
}
ans[s][s]=;
ans[e][e]=;
}
for(int k=; k<=a+b; k++)
{
for(int i=; i<=a+b; i++)
{
for(int j=; j<=a+b; j++)
{
ans[i][j]=min(ans[i][j],ans[i][k]+ans[k][j]);
}
}
}
int M=(1e9);
for(int i=;i<=a;i++)
{
M=min(ans[i][a+b],M);
}
if(M==(1e9))
{
puts("No");
}
else
cout<<M<<endl;
}
return ;
}

平行四边形

解法:数学,重点是知道a,b,c,d是干什么的

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
int n;
int t;
cin>>t;
while(t--)
{
int a,b,c,d;
int sum=;
cin>>a>>b>>c>>d;
for(int i=;i<d;i++)
{
if(i*c%d==)
{
sum+=b-;
}
else
{
sum+=b;
}
}
cout<<sum<<endl;
}
return ;
}

木木换班

解法:结构体排序

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct P
{
int a,b;
}He[];
bool cmd(P x,P y)
{
if(x.b==y.b)
{
return x.a<y.a;
}
return x.b>y.b;
}
int main()
{
int t;
int n;
cin>>t;
while(t--)
{
cin>>n;
for(int i=;i<=n;i++)
{
cin>>He[i].a>>He[i].b;
}
sort(He+,He+n+,cmd);
for(int i=;i<=n;i++)
{
// cout<<He[i].a<<" "<<He[i].b<<endl;
}
cout<<He[].a+He[].b<<endl;
}
return ;
}

0.333333333......

解法:a*100000....%b然后xjb求

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
double a,b;
cin>>a>>b;
double s=a/b*1.0;
s*=;
// cout<<s<<endl;
ll s1=(ll)s;
// cout<<s1<<endl;
if(abs(s1-s)<=1e-)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
// printf("[%d,%d]\n",a-1,b-1);
}
return ;
}

定义域

解法:没啥好说的

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int a,b;
cin>>a>>b;
printf("[%d,%d]\n",a-,b-);
}
return ;
}

2014江西理工大学C语言程序竞赛高级组的更多相关文章

  1. 2014江西理工大学C语言程序竞赛初级组

    坐公交 解法:略 #include<stdio.h> #include<string> #include<iostream> #include<math.h& ...

  2. 2014江西理工大学C语言程序设计竞赛高级组题解

    1001 Beautiful Palindrome Number 枚举回文数字前半部分,然后判断该数字是否满足,复杂度为O(sqrt(n))! 1002 Recovery Sequence  本题的核 ...

  3. 2017年江西理工大学C语言程序设计竞赛(高级组)

    问题 A: 求近似值 #include <stdio.h> #include <time.h> #include <stdlib.h> using namespac ...

  4. 2018年江西理工大学C语言程序设计竞赛(高级组) 三角平方数

    题目描述 三角数:形如图a,圆点摆放成等边三角形的数字,则为三角数. (图a) 平方数:形如图b,小方块摆放成正方形的数字,则为平方数. (图b) 那么如果一个数字既是三角形数又是平方数,则称为三角平 ...

  5. 2018年江西理工大学C语言程序设计竞赛高级组部分题解

    B Interesting paths 考察范围:组合数学 此题是机器人走方格的变种,n*m的网格,从(1,1)走到(n,m),首先可以明确,水平要走m-1格,竖直要走n-1格,则走到目的地的任意一条 ...

  6. 2018年江西理工大学C语言程序设计竞赛(初级组)一

     C语言竞赛初级组第一.二场答案:https://www.cnblogs.com/xingkongyihao/p/10046918.html  A: 逆序对 时间限制: 1 s      内存限制:  ...

  7. 2017年江西理工大学C语言程序设计竞赛(初级组)

    问题 A: Petr的盒子(初) #include <iostream> #include <stdio.h> #include <algorithm> using ...

  8. 2016年江西理工大学C语言程序设计竞赛(高级组)

    问题 A: jxust 解法:争议的问题(是输入整行还是输入字符串),这里倾向输入字符串,然后判断是否含有jxust就行 #include<bits/stdc++.h> using nam ...

  9. 2015年江西理工大学C语言程序设计竞赛(高级组)

    A 解法:DP+二分 dp[i]=max(dp[i],dp[j]+p[i].v)(i>j) dp[i]表示建立i点之后能够获得的最大值 int n,M; struct node { int l, ...

随机推荐

  1. [原创]java WEB学习笔记84:Hibernate学习之路-- -映射 一对一关系 ,基外键的方式实现

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. [转]SecureCRT使用配置详细图文教程

        Secure CRT是一款支持 SSH2.SSH1.Telnet.Telnet/SSH.Relogin.Serial.TAPI.RAW 等协议的终端仿真程序,最吸引我的是,SecureCRT ...

  3. collection和collections区别

    collection和collections区别 collection-->是集合类的上级接口,继承他的接口主要有set,list collections-->是针对集合类的一个帮助类,提 ...

  4. js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定

    js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定 addEventListener()与removeEventListener( ...

  5. java 字符串转json,json转对象等等...

    @RequestMapping(value = "updateInvestorApplyAccountNo", method = RequestMethod.POST) @Resp ...

  6. 大数据量的csv文件如何导入到 sql 数据库

    BULK INSERT dbo.T_test001 FROM 'E:\bus_20160316\bus全量评级及借款编号_20160316.csv' WITH ( FIELDTERMINATOR =' ...

  7. RMQ(非log2储存方法)

    2016-03-31 RMQ 难度级别:B: 运行时间限制:1000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 长度为n的数列A,以及q个询问,每次询问一段区间 ...

  8. MySQL OnlineDDL

    参考资料: http://dev.mysql.com/doc/refman/5.6/en/innodb-create-index-overview.html http://www.mysqlperfo ...

  9. webpack笔记_(1)_webpack 安装

    webpack不仅可以解析jsx,也可以将es6转换为es5语法.最终,它把这些代码都打包成一个叫bundle.js的文件,我们在html文件中只引入这么一个js文件就可以了! 打包后,引用的语法im ...

  10. loading等待载入正在加载的动画GIF图片圆形图标

    http://www.wtoutiao.com/p/GdfbdM.html