diff --git a/8.16/A-Frog copy/A.pdf b/8.16/A-Frog copy/A.pdf new file mode 100644 index 0000000..de1b01c --- /dev/null +++ b/8.16/A-Frog copy/A.pdf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae5f9bfaf2af1e1d5b3b4baa2946325356b476dad8d42dd1e4494e7ffeabe830 +size 107414 diff --git a/8.16/A-Frog copy/Readme.md b/8.16/A-Frog copy/Readme.md new file mode 100644 index 0000000..cc02b16 --- /dev/null +++ b/8.16/A-Frog copy/Readme.md @@ -0,0 +1,12 @@ +# ��Ŀ +* ���� +### ���� + +### ���� + +### �ؼ��� + +### �״��� +* +### ������ +* \ No newline at end of file diff --git a/8.16/A-Frog copy/doc/Readme.md b/8.16/A-Frog copy/doc/Readme.md new file mode 100644 index 0000000..4e768b5 --- /dev/null +++ b/8.16/A-Frog copy/doc/Readme.md @@ -0,0 +1 @@ +# \ No newline at end of file diff --git a/8.16/A-Frog copy/main.cpp b/8.16/A-Frog copy/main.cpp new file mode 100644 index 0000000..6d98384 --- /dev/null +++ b/8.16/A-Frog copy/main.cpp @@ -0,0 +1,46 @@ +#include <iostream> +#include<cstdio> +#include<algorithm> +#include <cmath> +#include <cstdlib> +using namespace std; +long long exgcd(long long a,int b,int &x,int &y) +{ + if(b==0) + { + //x,yû����ֵ + x=1; + y=0; + return a; + } + int ret=exgcd(b,a%b,x,y); + int tmp=x; + x=y; + y=tmp-a/b*y; + return ret; +} +int main() +{ + int a,b,c; + while(~scanf("%d%d%d",&a,&b,&c)) + { + if(a==0&&b==0&&c==0) + { + break; + } + int x0,y0; + int g=exgcd(a,b,x0,y0); + int x1=(c/g*x0%(b/g)+b/g)%(b/g),y1=(c-a*x1)/b; + int y2=(c/g*y0%(a/g)+a/g)%(a/g),x2=(c-b*y2)/a;//��a + x1=abs(x1);x2=abs(x2);y1=abs(y1);y2=abs(y2);//abs()��C������ֻ��int������Ч + if(x1+y1<x2+y2||a*x1+b*y1<a*x2+b*y2) + { + printf("%d %d\n",x1,y1); + } + else + { + printf("%d %d\n",x2,y2); + } + } + return 0; +} diff --git a/8.16/A-Frog copy/test/in.txt b/8.16/A-Frog copy/test/in.txt new file mode 100644 index 0000000..e69de29 diff --git a/8.16/A-Frog copy/test/in2.txt b/8.16/A-Frog copy/test/in2.txt new file mode 100644 index 0000000..e69de29 diff --git a/8.16/A-Frog copy/test/in3.txt b/8.16/A-Frog copy/test/in3.txt new file mode 100644 index 0000000..e69de29 diff --git a/8.16/A-Frog copy/test/out.txt b/8.16/A-Frog copy/test/out.txt new file mode 100644 index 0000000..01ba092 --- /dev/null +++ b/8.16/A-Frog copy/test/out.txt @@ -0,0 +1,7 @@ +## z:\Chao\src\Template\test\in.txt +2020/03/14 ���� 11:41:28.68 +Hello Easy C++ project! + +----------------------------------------------- +Process exited after 200 ms with return value 0 + diff --git a/8.16/A-Frog/Readme.md b/8.16/A-Frog/Readme.md index cc02b16..c4ccb8e 100644 --- a/8.16/A-Frog/Readme.md +++ b/8.16/A-Frog/Readme.md @@ -1,12 +1,16 @@ -# ��Ŀ -* ���� +# ���ܵ�Լ�� +* https://vjudge.net/contest/509210#problem/A ### ���� - +һ������Բ���ܵ���������㲻ͬ���ٶȲ�ͬ���ʺ�ʱ������� ### ���� - +exgcd�����Է�����⣬ȡ��С�Ǹ����� ### �ؼ��� - +exgcd�����Է�����⣬ȡ��С�Ǹ����� ### �״��� -* +* ȡ��С�Ǹ����� +* exgcd��//x,yû����ֵ +* ����printf("Impossible");//WA ������� ### ������ -* \ No newline at end of file +* ��� https://www.luogu.com.cn/problem/solution/P1516 +* ����ͬ�� ���� ͬ��������� https://zhuanlan.zhihu.com/p/451193655 +* ��ѧһ��ͨ1.3.5�������� \ No newline at end of file diff --git a/8.16/H-Relatives/main.cpp b/8.16/H-Relatives/main.cpp index 93fe8a1..c9059e6 100644 --- a/8.16/H-Relatives/main.cpp +++ b/8.16/H-Relatives/main.cpp @@ -2,19 +2,36 @@ #include<cstdio> #include<algorithm> #include <cmath> +#include <cstdlib> using namespace std; +int q,n; +int t1=0,t; int main() { - int t; - scanf("%d",&t); - while(t--) - { - int n; - scanf("%d",&n); - for(int i=1;i<=n; i++) - { - - } - } - return 0; +// scanf("%d",&t); + while(1) + { + scanf("%d",&n); + if(n==0) + { + break; + } +// int len=sqrt(n); + int res=n; + for(int i=2;i*i<=n;i++)//i=2 + { + if(n%i==0) + { + res=res-res/i; + } + while(n%i==0) + { + n/=i; + } + } + if(n>1) + res=res-res/n; + printf("%d\n",res); + } + return 0; } diff --git a/8.16/I-GCD.cpp b/8.16/I-GCD.cpp new file mode 100644 index 0000000..b646904 --- /dev/null +++ b/8.16/I-GCD.cpp @@ -0,0 +1,55 @@ +#include<iostream> +#include<cmath> +using namespace std; +int Euler(int n) +{ +// if(n==1) return 1; + int res=n; + int len=sqrt(n); + for(int i=2;i<=len;i++) + { + if(n%i==0) + { + n/=i; + res=res-res/i; +// printf("(%d:%d)",i,res); + } + while(n%i==0) + { + n/=i; + } + } + if(n>1)//key! + res=res-res/n; + return res; +} +int main() +{ + int t,n,m; + int ans; + scanf("%d",&t); + while(t--) + { + scanf("%d%d",&n,&m);//������& + int len=sqrt(n); + ans=0; + for(int i=1;i<=len;i++) + { + if(n%i!=0) continue; + if(i>=m&&i!=n/i) + { + ans+=Euler(n/i); + } + if(n/i>=m) + { + ans+=Euler(i); + } + else + { + break; + } +// printf("%d:%d\n",n/i,ans); + } + printf("%d\n",ans); + } +} diff --git a/8.16/I-GCDreference.cpp b/8.16/I-GCDreference.cpp new file mode 100644 index 0000000..1f33d06 --- /dev/null +++ b/8.16/I-GCDreference.cpp @@ -0,0 +1,37 @@ + +#include<cstdio> +using namespace std; +int Euler(int n){ + int m=n; + for(int i=2;i*i<=n;i++){ + if(n%i==0)//��һ���ҵ��ı�Ϊ������ + { + m-=m/i;//����������i�ı�����������Ŀ���� i,2i,3i,������,(m/i)*i + while(n%i==0) + n/=i;//�Ѹ�������ȫ��Լ�� + printf("(%d:%d)",i,m); + } + } + if(n>1) //����һ���ȸ���n��������� ,Ҳ�����������n + m-=m/n; + return m; +} +int main(){ + int T; + scanf("%d",&T); + int N,M; + while(T--){ + scanf("%d%d",&N,&M); + long long sum=0; + for(int i=1;i*i<=N;i++){//ֻ����������n����ʡʱ�� + if(N%i==0){ + if(i>=M) sum+=Euler(N/i);//iΪN��Լ����1<=i<=����n�� + if((N/i)!=i&&(N/i)>=M) sum+=Euler(i);//(N/i)��N��Լ����(N/i)>=����N + + printf("%d:%d\n",i,sum);} + } + printf("%lld\n",sum); + } + return 0; +} +