题解 P4388 【付公主的矩形】
嗯,
额,
这个,
不太好组织开头语,直接说题吧。
一个任性又喜新厌旧的她箭术过人,以稻草人练习。
需要满足她的喜新厌旧,一发入箭穿心 n 个稻草人。
得到方案数。
关于题解:
三步走
壹:look it:
可知:
若 gcd(i,n)=i ,为一种方案,ans++;
贰:
通过观察以及 Microsoft Office Power Point 的帮助
可知:
若 gcd(i,n−i+1)=1 ,那么也为一种方案,ans++;and rp--;
叁:
the third,
若gcd(i,n)=i ,那么摧毁 n 个稻草人要加上摧毁 n/i 个稻草人的方案。
肆:严格的推论:
交给 dalao ,我只是一个记录自己做题的记录员而已。
我做了十几年的选项分析,找规律能力早已异于常人,推规律只是瞬间的问题
that's all,thanks !
?????
the end ?
开玩笑:
1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 int gcd(int a,int b) 6 { 7 if(a%b==0) 8 { 9 return b; 10 } 11 else return gcd(b,a%b); 12 } 13 int lcm(int a,int b) 14 { 15 return a*b/gcd(a,b); 16 } 17 int n,ans; 18 int main() 19 { 20 scanf("%d",&n); 21 for(register int i=1;i<=n/2;i++) 22 if(gcd(i,n)==i) 23 { 24 ans++; 25 for(register int j=2;j<=(n/i)/2;j++) 26 if(gcd(j,(n/i)-j+1)==1) 27 { 28 ans++; 29 } 30 } 31 cout<<ans+1; 32 return 0; 33 }
关于代码,lcm 什么鬼?
辣鸡聊以自慰。
说它是精华才是开玩笑
精华是它: Microsoft Office Power Point 才对
撒花 ~~~~~~~~