2023年湖南省第十二屆大學生計算機程式設計競賽

2021-07-22 09:47:14 字數 2946 閱讀 8777

題目: 任意門

聽說這套題目是叉姐出的,感覺呵呵了。。。

據說現場牌都不夠發的!!!只能說給湖南省出的題目太強了,不適合新手去做,當然我這種老手也不見得做的多好,出了3題,趕在了三等首,但是感覺自己被碾壓慘了,尤其看到出題人的解釋時。。。

題意:中文題目,給定n,m求a*b%2016==0(1<=a<=n, 1<=b<=m) 的數的對數。

思路:第一眼看到這破題的時候,首先想到了容斥,不過看了一下榜,2分鐘都有人出,貌似有簡單的做法,但是這明顯是乙個數論的題目,有毛毛的簡單做法。

容斥原理不怎麼確定,也沒敢急著敲,索性先打下表,然而,悲催的是並沒什麼規律,然後繼續推,算了,寫一發容斥先看看對不對,胡搞一番,已經接近乙個小時了,有點捉急,但是寫出來連樣例都不過,調調改改,一直不對,也沒心思看剩下的題,接近兩個小時,就有點不想做了,正是困的時候,而且現在還是爆零的狀態(一下也沒提交),前面有了劃分第乙個數餘數,然後求第二個數的餘數的想法,但是在列舉第二個數的時候老是剪不好。

2個小時多一點的時候,試驗室中都還在改tle的**,我突然想起來,直接2016*2016的演算法,直接列舉兩個數的餘數,無非在不同的剩餘系裡,這兩個數的餘數相乘如果是2016的倍數,那麼原數一定也是,就這麼搞過去了,當然有可優化的餘地,當時腦袋都懵了,開了陣列。

code:

#include 

using

namespace

std;

typedef

long

long ll;

ll v1[2018],v2[2018];

ll n,m,s;

void sol()

}cout

}

problem g: parenthesis

題意:給定乙個括號串,每次交換兩個位置,問交換後是否合法。

思路:這道是隊友看的,也是一開始就過去的,開始我的想法是把(看作是+1,)看作是-1,然後修改也就是維護字首和,可用線段樹或樹狀陣列。不過後來看隊友的做法,是貪心的做法,只要是左邊的那個是)就一定能成功。然後o(nq)的做法,實際上因為貪心掉一大部分,遠遠達不到,大概也直到o(n)。

code:

#include

using

namespace

std;

const

int maxn=1e5+5;

char s[maxn];

int x[maxn],y[maxn],n,q;

bool solve(int a,int b)

int main()

int a,b;

while(q--)

}return

0;}

problem j: 三角形和矩形

題意:

中文題目,給定乙個三角形和乙個矩形,求交的面積。

思路:幾何不怎麼搞,但這肯定是套版題目,不過後來聽說硬算分情況也可以,因為之前見過hdu 3060求兩個多邊形並的題目,拿過來直接用了,稍加修改就過了。

code:

#include

#include

#include

#include

#include

const

int maxn = 555;

const

int maxisn = 10;

const

double eps = 1e-8;

const

double pi = acos(-1.0);

int dcmp(double x)

inline

double min(double a, double b)

inline

double max(double a, double b)

inline

double sqr(double x)

struct point

point(double a, double b)

inline point operator-(const point &b)const

inline point operator+(const point &b)const

inline

double dot(const point &b)const

inline

double cross(const point &b, const point &c)const

inline

double len()

};point linecross(const point &a, const point &b, const point &c, const point &d)

double polygonarea(point p, int n)

double cpia(point a, point b, int na, int nb)

memcpy(p, tmp, sizeof(point) * tn);

nb = tn, p[nb] = p[0];

}if(nb < 3) return

0.0;

return polygonarea(p, nb);

}double spia(point a, point b, int na, int nb)

}return polygonarea(a, na) + polygonarea(b, nb) - res;

}point p1[8], p2[8];

double x[8],y[8];

double san()

double si()

int n1, n2;

int main()

return

0;}

2023年湖南省第十二屆大學生計算機程式設計競賽

a.傳送門 2016 題意 給出正整數n和m,統計滿足以下條件的正整數對 a,b 的數量 1.1 a n,1 b m 2.a b 是 2016 的倍數。思路 a b是2016的倍數 a b 2016 0 a 2016 b 2016 2016 0 統計餘數的個數 b.傳送門 有向無環圖 題意 n個點,...

第十二屆湖南省賽 A 2016

description 給出正整數 n 和 m,統計滿足以下條件的正整數對 a,b 的數量 1.1 a n,1 b m 2.a b 是 2016 的倍數。input 輸入包含不超過 30 組資料。每組資料報含兩個整數 n,m 1 n,m 10 9 output 對於每組資料,輸出乙個整數表示滿足條件...

湖南省第十二屆省賽 Parenthesis

bobo has a balanced parenthesis sequence p p1 p2 pn of length n and q questions.parenthesis sequence s is balanced if and only if the input contains a...