日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

CodeForces - 1549F1 Gregor and the Odd Cows (Easy)(几何+数论)

發(fā)布時(shí)間:2024/4/11 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CodeForces - 1549F1 Gregor and the Odd Cows (Easy)(几何+数论) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接:點(diǎn)擊查看

題目大意:給出二維平面上的 nnn 個(gè)點(diǎn),任意選擇出三個(gè)點(diǎn)可以構(gòu)成一個(gè)三角形,現(xiàn)在問(wèn)滿足下面條件的三角形的個(gè)數(shù):

  • 三角形面積為整數(shù)
  • 三角形包含的(不包括邊界)整數(shù)點(diǎn)為奇數(shù)
  • 其中所有坐標(biāo)點(diǎn)的 xxxyyy 都是偶數(shù)

    題目分析:因?yàn)樗凶鴺?biāo)點(diǎn)都是偶數(shù),所以先猜一波任意三個(gè)點(diǎn)都是滿足第一個(gè)條件的,也就是圍成的三角形面積一定是偶數(shù)。

    所以現(xiàn)在問(wèn)題就轉(zhuǎn)換為了,如何求解滿足第二個(gè)條件的三角形的個(gè)數(shù)。賽中經(jīng)隊(duì)友提醒,得知了“皮克定理”這一關(guān)鍵的結(jié)論,即 S=a+b2?1S=a+\frac{b}{2}-1S=a+2b??1,其中 SSS 為三角形的面積,aaa 為三角形內(nèi)部的點(diǎn)數(shù),bbb 為三角形邊界上的點(diǎn)數(shù)。bbb 非常好求,每條邊上的答案就是 gcd?(dx,dy)+1\gcd(dx,dy)+1gcd(dx,dy)+1,放在三角形上就是 gcd?(∣x1?x2∣,∣y1?y2∣)+gcd?(∣x1?x3∣,∣y1?y3∣)+gcd?(∣x3?x2∣,∣y3?y2∣)+3?3\gcd(|x1-x2|,|y1-y2|)+\gcd(|x1-x3|,|y1-y3|)+\gcd(|x3-x2|,|y3-y2|)+3-3gcd(x1?x2,y1?y2)+gcd(x1?x3,y1?y3)+gcd(x3?x2,y3?y2)+3?3,因?yàn)槿齻€(gè)頂點(diǎn)分別計(jì)算了兩次,所以減去三之后就是這個(gè)答案了

    皮克定理移項(xiàng)之后得到 a=b2?1?Sa=\frac{b}{2}-1-Sa=2b??1?S,如果 aaa 想要為奇數(shù),那么 a+1=b2?Sa+1=\frac{b}{2}-Sa+1=2b??S 需要是偶數(shù),因?yàn)樯厦嬉呀?jīng)保證了 SSS 是偶數(shù),所以現(xiàn)在只需要保證 b2\frac{b}{2}2b? 是偶數(shù)

    所以問(wèn)題轉(zhuǎn)換為了,有 nnn 個(gè)點(diǎn),任意兩個(gè)點(diǎn)之間的邊權(quán)為 gcd(dx,dy)/2gcd(dx,dy)/2gcd(dx,dy)/2,現(xiàn)在要求滿足條件的三元環(huán)個(gè)數(shù),需要滿足三條邊權(quán)為:

  • 奇數(shù)、奇數(shù)、偶數(shù)
  • 偶數(shù)、偶數(shù)、偶數(shù)
  • 然后到這里就尬住了,比賽時(shí)以為是什么典中典的三元環(huán)計(jì)數(shù)問(wèn)題,就下班了

    第二天看了題解發(fā)現(xiàn),邊權(quán)和坐標(biāo)有著密切的聯(lián)系,又因?yàn)槊總€(gè)點(diǎn)的坐標(biāo)都是偶數(shù),所以我們不妨一開(kāi)始就將坐標(biāo)除以二

    然后我們就很神奇的發(fā)現(xiàn),一共就只有四類點(diǎn)了,分別是 xxxyyy 分別取 000111 的時(shí)候。這是點(diǎn)權(quán),邊權(quán)的話當(dāng)且僅當(dāng) x1==x2x1==x2x1==x2 and y1==y2y1==y2y1==y2 時(shí),原先點(diǎn)的 gcd?\gcdgcd 才是偶數(shù),其他情況都是奇數(shù)

    從頭開(kāi)始再推一遍,發(fā)現(xiàn)我們之前的得到的結(jié)論沒(méi)有變!所以 n3n^3n3 去枚舉計(jì)數(shù)就好了

    你說(shuō) n=6000n=6000n=6000?不不,現(xiàn)在的 nnn 實(shí)質(zhì)上只有 444 種情況,用組合數(shù)學(xué)統(tǒng)計(jì)一下答案就好了

    代碼:

    // Problem: F1. Gregor and the Odd Cows (Easy) // Contest: Codeforces - Codeforces Round #736 (Div. 2) // URL: https://codeforces.com/contest/1549/problem/F1 // Memory Limit: 256 MB // Time Limit: 6000 ms // // Powered by CP Editor (https://cpeditor.org)// #pragma GCC optimize(2) // #pragma GCC optimize("Ofast","inline","-ffast-math") // #pragma GCC target("avx,sse2,sse3,sse4,mmx") #include<iostream> #include<cstdio> #include<string> #include<ctime> #include<cmath> #include<cstring> #include<algorithm> #include<stack> #include<climits> #include<queue> #include<map> #include<set> #include<sstream> #include<cassert> #include<bitset> #include<list> #include<unordered_map> #define lowbit(x) (x&-x) using namespace std; typedef long long LL; typedef unsigned long long ull; template<typename T> inline void read(T &x) {T f=1;x=0;char ch=getchar();while(0==isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(0!=isdigit(ch)) x=(x<<1)+(x<<3)+ch-'0',ch=getchar();x*=f; } template<typename T> inline void write(T x) {if(x<0){x=~(x-1);putchar('-');}if(x>9)write(x/10);putchar(x%10+'0'); } const int inf=0x3f3f3f3f; const int N=1e6+100; LL cnt[2][2]; LL C(int n,int m) {if(m==1) {return n;} else if(m==2) {return 1LL*n*(n-1)/2;} else if(m==3) {return 1LL*n*(n-1)*(n-2)/6;} } int cal(int x1,int y1,int x2,int y2) {if(x1==x2&&y1==y2) {return true;} else {return false;} } int main() { #ifndef ONLINE_JUDGE // freopen("data.in.txt","r",stdin); // freopen("data.out.txt","w",stdout); #endif // ios::sync_with_stdio(false);int n;read(n);for(int i=1;i<=n;i++) {int x,y;read(x),read(y);cnt[x%4/2][y%4/2]++;}LL ans=0;for(int s1=0;s1<4;s1++) {for(int s2=s1;s2<4;s2++) {for(int s3=s2;s3<4;s3++) {int x1=s1/2,y1=s1%2;int x2=s2/2,y2=s2%2;int x3=s3/2,y3=s3%2;int even=0;//2odds + 1even or 3 eveneven+=cal(x1,y1,x2,y2);even+=cal(x1,y1,x3,y3);even+=cal(x2,y2,x3,y3);if(even==2||even==0) {continue;}if(s1==s2&&s2==s3) {ans+=C(cnt[x1][y1],3);} else if(s1==s2) {ans+=C(cnt[x1][y1],2)*cnt[x3][y3];} else if(s2==s3) {ans+=C(cnt[x2][y2],2)*cnt[x1][y1];} else if(s1==s3) {ans+=C(cnt[x1][y1],2)*cnt[x2][y2];} else {ans+=cnt[x1][y1]*cnt[x2][y2]*cnt[x3][y3];}}}}cout<<ans<<endl;return 0; }

    總結(jié)

    以上是生活随笔為你收集整理的CodeForces - 1549F1 Gregor and the Odd Cows (Easy)(几何+数论)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 午夜久久久久久久久久 | 激情欧美一区二区免费视频 | 青草超碰 | www网站在线免费观看 | 四虎国产在线观看 | 亚洲av无码一区二区乱子伦as | 91视频在线免费观看 | 欧美在线观看一区二区三区 | 天天搞天天 | 欧美一级性片 | 福利在线免费观看 | 九九热精品视频在线播放 | 亚洲欧洲日韩av | 香蕉人人精品 | 老色鬼在线 | 国产精品v欧美精品v日韩精品 | 一级日韩毛片 | 特大黑人巨人吊xxxx | 刘亦菲久久免费一区二区 | 亚洲美女在线播放 | 欧美无吗 | 日本人的性生活视频 | 综合久久久久综合 | www.青青草| 日韩午夜在线观看 | 精品一区二区三区三区 | 激情拍拍 | 久久久久99精品成人片毛片 | 久久久久久蜜桃 | 国产欧美日韩在线 | 91久久精品视频 | 久久综合免费视频 | 日韩欧美精品在线视频 | 裸体男女树林做爰 | 丰满秘书被猛烈进入高清播放在 | 成人做爰100 | 日本久久网站 | 一区二区三区四区中文字幕 | 亚洲国产综合在线 | 牛牛在线免费视频 | 日韩精品一二三四区 | 色婷婷久久一区二区三区麻豆 | 亚洲国产精品99 | 日本一区二区黄色 | av在线天堂| 在线观看成人小视频 | 黄色网址进入 | 国产原创剧情av | 国产日韩中文 | 91高清在线免费观看 | 成人综合一区二区 | 伊人情人综合 | 五月天看片 | 一边摸内裤一边吻胸 | 在线尤物 | 欧美国产日本在线 | 懂色中文一区二区在线播放 | 亚洲欧洲精品成人久久奇米网 | 亚洲精品国产视频 | 久久久精品毛片 | 欧美乱论 | 亚洲69av| 成人影视在线看 | 亚洲av中文无码乱人伦在线观看 | 醉酒壮男gay强迫野外xx | 女人久久久 | 国产精品69久久久久 | 国产成人观看 | av亚洲在线观看 | 欧美日韩中文视频 | 中文字幕va | 亚洲毛片在线观看 | 久伊人网 | 欧美操操操 | 中文字幕一区2区3区 | 久久成| 欧美黄网在线观看 | 色欲AV无码精品一区二区久久 | 国产一区二区黄色 | 无码一区二区三区免费 | 亚洲青青草原 | 狠狠涩| 乳女教师の诱惑julia | 久久精品久久国产 | 一级中国毛片 | 国产又色又爽又黄又免费 | 天天干天天搞天天射 | 18岁禁黄网站 | 人人妻一区二区三区 | 天天综合人人 | 亚洲色图27p | 亚州色图欧美色图| 亚洲激情短视频 | 冲田杏梨av| 2018天天弄| 不卡一区二区在线视频 | 精品国产乱码久久久久久免费 | 亚洲av成人无码久久精品 | a√天堂网 |