題目: 任意門
聽說這套題目是叉姐出的,感覺呵呵了。。。
據說現場牌都不夠發的!!!只能說給湖南省出的題目太強了,不適合新手去做,當然我這種老手也不見得做的多好,出了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...