分析:只需要求出最大公约数,然后枚举最大公约数的因子,把他们保存起来在求第K大的;因为是最大公约数的因子必然是两个数的因子。另外循环变量i和个数cnt都要声明为__int64,否则出错。
#include
#include
using namespace std;
__int64 gcd(__int64 x,__int64 y)
{
__int64 r;
while(y)
{
r=...
分类:
其他好文 时间:
2015-05-12 13:39:27
阅读次数:
135
A Famous Grid
Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1562 Accepted Submission(s): 603
Problem Description
Mr. B has recent...
分类:
其他好文 时间:
2015-05-12 09:27:04
阅读次数:
168
Nightmare
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 8125 Accepted Submission(s): 3896
Problem Description
Ignatius had a night...
分类:
Web程序 时间:
2015-05-12 09:24:54
阅读次数:
175
分析:筛法的思想,首先记录每个值的坐标,在使用筛法。
#include
using namespace std;
int a[10005];
int f[10005];
int main()
{
int i,n,j,mx,ans,tmp;
ios::sync_with_stdio(false);
while(cin>>n)
{
mx=-1;
memset(f,-1,size...
分类:
其他好文 时间:
2015-05-11 14:49:13
阅读次数:
145
分析:先根据询问求出每个纵向区间的最小公倍数(一列算一个区间),在根据询问判断每个横向区间的最大公约数是否和询问相同,若都相同则输出最终结果,否则不存在。
#include
using namespace std;
int a[1005];
struct NODE
{
int l,r,gcd;
} GCD[1005];
int gcd(int x,int y)
{
return ...
分类:
其他好文 时间:
2015-05-11 09:07:24
阅读次数:
180
分析:水题,主要是要注意几个细节。
#include
using namespace std;
char a[100005],A[100005];
char b[100005],B[100005];
void Process(char* p,int count,char* p2)
{
int pos;
bool is_real;
int i=0,k=0,j;
label:
...
分类:
其他好文 时间:
2015-05-10 19:00:07
阅读次数:
125
分析:可以用线段树做,但感觉麻烦。用优先队列,每次插入时都保留前k个大的数即可。
#include
#include
#include
using namespace std;
int main()
{
int n,k,j,c;
char b[2];
ios::sync_with_stdio(false);
while(cin>>n>>k)
{
priority_queue,g...
分类:
其他好文 时间:
2015-05-10 15:49:40
阅读次数:
118
分析:因为长和宽都是整数,所以枚举判断是不是整数,再取最小的即可。
#include
#include
using namespace std;
int main()
{
int min;
int a,i,T;
ios::sync_with_stdio(false);
cin>>T;
while(T--)
{
cin>>a;
min=1000000000;
for(i...
分类:
其他好文 时间:
2015-05-10 14:22:58
阅读次数:
111
分析:水题,题目居然这么长,全国邀请赛也有水题?strlen(a)返回的是无符号整形,strlen(a)-4会变为正的很大的数,还被RE了两次,唉!人老了。转换为int即可。
#include
using namespace std;
#define N 1000010
int main()
{
char a[N+10];
int ans,i;
ans=0;
while(gets(...
分类:
其他好文 时间:
2015-05-10 14:22:46
阅读次数:
108
分析:十进制映射到八进制后,如果跳过8到9,实际上只数了7次,如果跳过3到了4-7实际上只数了3-6次。对应关系如下。
0,1,2,3,4,5,6,7,8,9
0,1,2,-,3,4,5,6,-,7
#include
using namespace std;
int main()
{
int a[10]={0,1,2,0,3,4,5,6,0,7},i;
__int64 ans,k;
...
分类:
其他好文 时间:
2015-05-10 12:58:45
阅读次数:
115