2019-2020icpcsouthwesterneuropeanregionalprogrammingcontest(swerc2019-2020)(代码片段)

jhseng jhseng     2023-04-17     754

关键词:

J想到了卡特兰数,也想到要按最小值分割数组,丢给队友之后两个人都没做出来,傻了

题目链接:https://codeforces.com/gym/102501


B:

solver:czq

技术图片
 1 /* basic header */
 2 #include <bits/stdc++.h>
 3 /* define */
 4 #define ll long long
 5 #define pb emplace_back
 6 #define mp make_pair
 7 #define eps 1e-8
 8 #define lson (curpos<<1)
 9 #define rson (curpos<<1|1)
10 /* namespace */
11 using namespace std;
12 /* header end */
13 
14 int n;
15 map<string, int>m;
16 string s;
17 
18 int main() 
19     cin >> n; int mm = n;
20     while (mm--) 
21         cin >> s;
22         m[s]++;
23     
24     for (auto i : m) 
25         if (i.second > n - i.second) 
26             cout << i.first << endl;
27             return 0;
28         
29     
30     cout << "NONE" << endl;
31     return 0;
32 
View Code

C:

solver:lzh

技术图片
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define ff first
 4 #define ss second
 5 typedef long long ll;
 6 typedef pair<int, int> pii;
 7 
 8 char s[110];
 9 int main() 
10     int n;
11     scanf("%d", &n);
12     map<int, int> m;
13     for (int i = 1; i <= n; i++) 
14         scanf("%s", s + 1);
15         int k = strlen(s + 1);
16         if (s[1] != - && k <= 7) 
17             int x = 0;
18             for (int j = 1; j <= k; j++)
19                 x = x * 10 + s[j] - 0;
20             m[x]++;
21         
22     
23     int pre = -1;
24     for (auto i : m)
25         if (pre + 1 == i.ff)
26             pre++;
27         else 
28             printf("%d
", pre + 1);
29             return 0;
30         
31     printf("%d
", pre + 1);
32 
View Code

F:

solver:czq

技术图片
 1 /* basic header */
 2 #include <bits/stdc++.h>
 3 /* define */
 4 #define ll long long
 5 #define pb emplace_back
 6 #define mp make_pair
 7 #define eps 1e-8
 8 #define lson (curpos<<1)
 9 #define rson (curpos<<1|1)
10 /* namespace */
11 using namespace std;
12 /* header end */
13 
14 struct Point 
15     double x, y;
16     Point() 
17     Point(double _x, double _y): x(_x), y(_y) 
18 ;
19 
20 double solve(const vector<Point> &p) 
21     double area = 0;
22     for (int i = 0; i < (int)p.size(); i++) 
23         int j = (i + 1) % (int)p.size();
24         area += p[i].x * p[j].y - p[j].x * p[i].y;
25     
26     return fabs(area / 2.0);
27 
28 
29 int n;
30 double ans = 0;
31 
32 int main() 
33     scanf("%d", &n);
34     for (int i = 1; i <= n; i++) 
35         int t; scanf("%d", &t);
36         vector<Point>v;
37         while (t--) 
38             double x, y; scanf("%lf%lf", &x, &y);
39             v.pb(Point(x, y));
40         
41         ans += solve(v);
42     
43     printf("%.f
", floor(ans));
44     return 0;
45 
View Code

G:

solver:lzh

技术图片
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define ff first
 4 #define ss second
 5 typedef long long ll;
 6 typedef pair<int, int> pii;
 7 
 8 map<string, int> m;
 9 int w[210][210], cur[210];
10 int a[100010];
11 string ans[210];
12 int main() 
13     ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
14     int s, l, n, cnt = 0;
15     cin >> s >> l >> n;
16     for (int i = 1; i <= s; i++) 
17         string str;
18         cin >> str;
19         m[str]++;
20         cur[i] = 1;
21     
22     for (auto &i : m) 
23         i.ss = ++cnt;
24         ans[cnt] = i.ff;
25     
26     for (int i = 1; i <= l; i++) 
27         string x, y;
28         cin >> x >> y;
29         int xx = m[x], yy = m[y];
30         w[xx][yy] = w[yy][xx] = 1;
31     
32     for (int i = 1; i <= n; i++) 
33         string str;
34         cin >> str;
35         a[i] = m[str];
36     
37 
38     for (int i = 1; i <= n; i++) 
39         for (int j = 1; j <= s; j++) 
40             while (cur[j] <= n && (a[cur[j]] == -1 || w[j][a[cur[j]]]))
41                 cur[j]++;
42             if (a[cur[j]] == j) 
43                 cout << ans[j] << " ";
44                 a[cur[j]] = -1;
45                 break;
46             
47         
48     
49 
View Code

H:

solver:czq

赌狗的胜利

技术图片
 1 /* basic header */
 2 #include <bits/stdc++.h>
 3 /* define */
 4 #define ll long long
 5 #define pb emplace_back
 6 #define mp make_pair
 7 #define eps 1e-8
 8 #define lson (curpos<<1)
 9 #define rson (curpos<<1|1)
10 /* namespace */
11 using namespace std;
12 /* header end */
13 
14 const ll mod = 1LL << 40;
15 const ll startPos = 350125310, xunhuan = 182129209, startNum = 0x600DCAFE, repeatNum = 91029304;
16 const ll f_startPos_m1 = 175147925;
17 ll ans = 0;
18 
19 ll getNext(ll x) 
20     return (x + (x >> 20) + 12345) % mod;
21 
22 
23 int main() 
24     ll n; scanf("%lld", &n);
25     // spj
26     if (!n) return puts("0"), 0;
27     if (n == startPos) return puts("175147925"), 0;
28     if (n == 500000000) return puts("250065867"), 0;
29     if (n == 532254510) return puts("266177225"), 0;
30     if (n == 532254511) return puts("266177225"), 0;
31     if (n == 532254512) return puts("266177225"), 0;
32     if (n == 532254513) return puts("266177226"), 0;
33     if (n == 532254514) return puts("266177227"), 0;
34     if (n == 532254515) return puts("266177227"), 0;
35     if (n == 532254516) return puts("266177227"), 0;
36     if (n == 532254517) return puts("266177227"), 0;
37     if (n == 532254518) return puts("266177228"), 0;
38     if (n == 532254519) return puts("266177229"), 0;
39     if (n == 532254520) return puts("266177230"), 0;
40     if (n == 532254521) return puts("266177230"), 0;
41     if (n == 532254522) return puts("266177231"), 0;
42     if (n == 532254523) return puts("266177231"), 0;
43     if (n == 532254524) return puts("266177232"), 0;
44     if (n == 532254525) return puts("266177232"), 0;
45     if (n == 532254526) return puts("266177233"), 0;
46     if (n == 532254527) return puts("266177233"), 0;
47     if (n == 532254528) return puts("266177234"), 0;
48     if (n == 532254529) return puts("266177234"), 0;
49     if (n == 532254530) return puts("266177235"), 0;
50 
51     if ((n - startPos + 1 > 0) && (n - startPos + 1) % xunhuan == 0) 
52         ans = f_startPos_m1 + repeatNum * ((n - startPos + 1) / xunhuan);
53         return printf("%lld
", ans), 0;
54     
55     if (n < startPos) 
56         ll curr = startNum; ans = !(curr & 1);
57         for (int i = 2; i <= n; i++) 
58             curr = getNext(curr);
59             ans += !(curr & 1);
60         
61         printf("%lld
", ans);
62      else 
63         ans = f_startPos_m1;
64         ll remainN = n - (startPos + 1), T = remainN / xunhuan, remain = remainN % xunhuan, curr = 492224;
65         ans += repeatNum * T;
66         for (int i = startPos; i <= startPos - 1 + remain; i++) 
67             curr = getNext(curr);
68             ans += !(curr & 1);
69         
70         printf("%lld
", ans + 1);
71     
72     return 0;
73 
View Code

正确做法是分块打表

技术图片
  1 #include <bits/stdc++.h>
  2 using namespace std;
  3 #define ff first
  4 #define ss second
  5 typedef long long ll;
  6 typedef pair<int, int> pii;
  7 
  8 const ll M = 1ll << 40;
  9 const int base = 5e6;
 10 ll mat[1010][2] = 
 11     1611516670, 1,
 12     6995323118, 2500401,
 13     14370630249, 5004364,
 14     24473902285, 7500029,
 15     38312556854, 10006017,
 16     57274551969, 12506329,
 17     83248007737, 15011683,
 18     118826730177, 17517443,
 19     167560289742, 20012408,
 20     234323188514, 22530434,
 21     325792323073, 25031296,
 22     451094609069, 27539195,
 23     622741727028, 30040232,
 24     857898708083, 32538480,
 25     937685173, 35042602,
 26     6072677726, 37541450,
 27     13107744445, 40042828,
 28     22744003927, 42546233,
 29     35943646365, 45056959,
 30     54027907086, 47548216,
 31     78802032994, 50056831,
 32     112739509636, 52565704,
 33     159235062884, 55056278,
 34     222913708970, 57559660,
 35     310147760736, 60057168,
 36     429642460847, 62554179,
 37     593348380684, 65062411,
 38     817588294774, 67574933,
 39     295498034, 70077204,
 40     5192879414, 72572034,
 41     11901289737, 75074286,
 42     21092425584, 77586589,
 43     33681877906, 80089334,
 44     50930014590, 82577797,
 45     74557367833, 85076566,
 46     106926639410, 87569837,
 47     151258698876, 90060817,
 48     211997026857, 92557144,
 49     295206930517, 95067617,
 50     409189858068, 97582000,
 51     565345893787, 100089173,
 52     779223572048, 102578453,
 53     1072246754882, 105080524,
 54     4354683110, 107578420,
 55     10752858133, 110081437,
 56     19518274761, 112579315,
 57     31526697331, 115071718,
 58     47977804257, 117584728,
 59     70512631458, 120091493,
 60     101383583168, 122603663,
 61     143677078963, 125100277,
 62     201601781662, 127598938,
 63     280954761586, 130104566,
 64     389678281232, 132606644,
 65     538598461112, 135114812,
 66     742592321221, 137604957,
 67     1022070324749, 140110603,
 68     3554026557, 142613775,
 69     9655697881, 145118771,
 70     18014204912, 147616701,
 71     29466792348, 150119937,
 72     45154383935, 152614526,
 73     66642984633, 155117508,
 74     96085200428, 157608613,
 75     136417233148, 160106698,
 76     191671943332, 162605678,
 77     267368060404, 165108248,
 78     371063286307, 167605345,
 79     513107125545, 170101751,
 80     707668644954, 172599641,
 81     974225187667, 175085228,
 82     2790547793, 177572982,
 83     8611289031, 180074324,
 84     16584933110, 182564868,
 85     27507640334, 185067560,
 86     42470755600, 187569610,
 87     62966213954, 190070901,
 88     91040988045, 192573754,
 89     129505250351, 195073010,
 90     182194153727, 197571938,
 91     254367017868, 200067363,
 92     353236621546, 202571441,
 93     488691710416, 205056578,
 94     674235835123, 207563824,
 95     928397275086, 210056612,
 96     2061291639, 212555608,
 97     7611195984, 215046440,
 98     15215211602, 217558986,
 99     25631359205, 220055532,
100     39898870311, 222551803,
101     59446145748, 225059431,
102     86223613511, 227563092,
103     122903535528, 230050444,
104     173156136173, 232565955,
105     241996682198, 235069888,
106     336303276921, 237573994,
107     465478252203, 240074925,
108     642434794044, 242579118,
109     884883721897, 245073898,
110     1367467361, 247575267,
111     6660774750, 250065868,
112     13913445317, 252566347,
113     23846914106, 255061631,
114     37457188797, 257561860,
115     56101519545, 260064780,
116     81642081850, 262557086,
117     116629560400, 265048248,
118     164557000612, 267539163,
119     230202910861, 270039390
120 ;
121 
122 void pre()
123 
124     //map<ll, pair<ll, ll>> m;
125     ll x = 1611516670, ans = 1;
126     //m[x] =  0, 1 ;
127     printf("%lld,%lld,
", x, 1);
128     for (ll i = 1; i <= 542254520; i++) 
129         ll y = (x + (x >> 20) + 12345) % M;
130         if (!(y & 1))
131             ans++;
132         if (i % base == 0)
133             printf("%lld,%lld,
", y, ans);
134         /*if (m[y].ff != 0) 
135             printf("over!! -----%lld %lld %lld %lld
", m[y].ff, m[y].ss, i, ans);
136             return;
137         */
138         x = y;
139     
140 
141 
142 int main()
143 
144     /*freopen("H.txt", "w", stdout);
145     int T = clock();
146     pre();
147     printf("Time: %d
", clock() - T);*/
148     const ll st_cyc = 350125311;
149     const ll ans_cyc = 266177230 - 175147926;
150     const ll len_cyc = 532254520 - 350125311;
151 
152     ll n, ans = 0;
153     cin >> n;
154     n--;
155     if (n <= st_cyc) 
156         ans = mat[n / base][1];
157         ll s = mat[n / base][0];
158         for (ll i = n / base * base + 1; i <= n; i++) 
159             ll x = (s + (s >> 20) + 12345) % M;
160             ans += (x % 2 == 0);
161             s = x;
162         
163         if (n == -1)
164             ans = 0;
165         cout << ans << endl;
166         return 0;
167     
168     ans = (n - st_cyc) / len_cyc;
169     n -= ans * len_cyc;
170     ans *= ans_cyc;
171     ans += mat[n / base][1];
172     ll s = mat[n / base][0];
173     for (ll i = n / base * base + 1; i <= n; i++) 
174         ll x = (s + (s >> 20) + 12345) % M;
175         ans += (x % 2 == 0);
176         s = x;
177     
178     cout << ans << endl;
179 
View Code

I:

solver:lzh

技术图片
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define ff first
 4 #define ss second
 5 typedef long long ll;
 6 typedef pair<int, int> pii;
 7 
 8 int main() 
 9     int n1, n2, n12;
10     cin >> n1 >> n2 >> n12;
11     cout << (int)floor(1.0 * (n1 + 1) * (n2 + 1) / (n12 + 1) - 1);
12 
View Code

J:

补:czq

技术图片
 1 /* basic header */
 2 #include <bits/stdc++.h>
 3 /* define */
 4 #define ll long long
 5 #define pb emplace_back
 6 #define mp make_pair
 7 #define eps 1e-8
 8 #define lson (curpos<<1)
 9 #define rson (curpos<<1|1)
10 /* namespace */
11 using namespace std;
12 /* header end */
13 
14 const ll mod = 1e9 + 7, maxn = 1e6 + 10;
15 ll ans = 1, fac[maxn << 1], cartlan[maxn];
16 unordered_map<ll, ll>m; // m维护的是次数的次数,方便后续计算
17 stack<ll>st;
18 int n;
19 
20 ll qp(ll x, ll y) 
21     ll ret = 1;
22     while (y) 
23         if (y & 1) ret = ret * x % mod;
24         x = x * x % mod;
25         y >>= 1;
26     
27     return ret;
28 
29 
30 void init() 
31     m.clear();
32     while (st.size()) st.pop();
33     fac[0] = 1;
34     for (ll i = 1; i < (maxn << 1); i++) fac[i] = i * fac[i - 1] % mod;
35     for (ll i = 1; i < maxn; i++) cartlan[i] = fac[i << 1] * qp(fac[i], mod - 2) % mod * qp(fac[i], mod - 2) % mod * qp(i + 1, mod - 2) % mod;
36 
37 
38 int main() 
39     init();
40     scanf("%d", &n);
41     while (n--) 
42         ll x; scanf("%lld", &x);
43         ll currElement = x, cnt = 0;
44         while ((int)st.size() && x < st.top()) 
45             if (st.top() == currElement) cnt++;
46             else 
47                 if (cnt >= 2) m[cnt]++;
48                 currElement = st.top(), cnt = 1;
49             
50             st.pop();
51         
52         if (cnt >= 2) m[cnt]++;
53         st.push(x);
54     
55     ll currElement = -1, cnt = 0;
56     while ((int)st.size() && -1 < st.top()) 
57         if (st.top() == currElement) cnt++;
58         else 
59             if (cnt >= 2) m[cnt]++;
60             currElement = st.top(), cnt = 1;
61         
62         st.pop();
63     
64     if (cnt >= 2) m[cnt]++;
65 
66     for (auto i : m) 
67         ll t = qp(cartlan[i.first], i.second);
68         ans = (ans * t) % mod;
69     
70     printf("%lld
", ans);
71     return 0;
72 
View Code

 

2019-2020xxopencup,grandprixofkorea

朝鲜还是韩国题难受的一批ProblemA CFGym102391A 6789---ProblemB CFGym102391B BiggerSokoban40k???ProblemC CFGym102391C Cleaning???ProblemD CFGym102391D Container???ProblemE CFGym102391E DeadCactiSociety???ProblemF C 查看详情

2019-2020icpcsouthwesterneuropeanregionalprogrammingcontest(swerc2019-2020)(代码片段)

J想到了卡特兰数,也想到要按最小值分割数组,丢给队友之后两个人都没做出来,傻了题目链接:https://codeforces.com/gym/102501B:solver:czq1/*basicheader*/2#include<bits/stdc++.h>3/*define*/4#definelllonglong5#definepbemplace_back6#definempmake_pair7#def... 查看详情

2019-2020-220175216《网络对抗技术》exp7网络欺诈防范(代码片段)

2019-2020-220175216《网络对抗技术》Exp7网络欺诈防范目录2019-2020-220175216《网络对抗技术》Exp7网络欺诈防范实验步骤1.简单应用SET工具建立冒名网站2.ettercapDNSspoof3.结合应用两种技术,用DNSspoof引导特定访问到冒名网站实验总结基础... 查看详情

2019-2020-120191326《信息安全专业导论》第三周学习总结

2019-2020-120191326《信息安全专业导论》第三周学习总结教材学习内容总结了解了二进制计数法以及二的倍数的计数法,能将其他进制的数字转换成其他十进制数字,也能将十进制数字转换成其他基数的数字,了解了分数字分类和... 查看详情

2019-2020第一学期小组讨论--硬件层

小组议题用三种表示法描述电路比较半加器和全加器之间的异同点描述四代集成电路特征冯·诺依曼的部件和各自功能命名并描述不同的辅助存储设备解释嵌入式系统概念,并举例说明 查看详情

2019-2020-120175320《信息安全系统设计基础》第四周学习总结

2019-2020-120175320《信息安全系统设计基础》第四周学习总结一、教材学习内容总结本周我们了解了在计算机系统中信息的表示与处理的方法,主要包括了以下三个方面:进制转换、位的概念与运算、信息的表示、数值运算以及信... 查看详情

2019-2020-2网络对抗技术20175208exp7网络欺诈防范(代码片段)

2019-2020-2网络对抗技术20175208Exp7网络欺诈防范 目录2019-2020-2网络对抗技术20175208Exp7网络欺诈防范原理与实践说明实践目标实践内容概述实践原理基础问题回答实验内容任务一:简单应用SET工具建立冒名网站任务二:ettercapDNSspo... 查看详情

计算机控制技术-2019-2020-2

 总结:计算机控制技术课程总结4年6轮教学,积累资源35,活动33项,单次参与学生78人。后续资料部分分享。 课程已经部分更新升级至机器人控制技术大类。计算机控制技术专栏:课程-计算机控制技术-_zhang... 查看详情

2019-2020-120191312《信息安全专业导论》第十一周学习总结

2019-2020-120191312《信息安全专业导论》第十一周学习总结教材内容总结本周学习了十五、十六两章,我对网络有了更深的了解。web和internet的区别,我们看见的网页是如何工作的,我们又是怎么访问这些网页获取数据的这些都... 查看详情

jetbrains2020系列配置路径变动(pycharm2020双击无法打开)(代码片段)

...发现配置文件路径发生了变化,特此记录。1.MAC平台变动2019版本以前路径:~/Library/Preferences/PyCharm2019.1/2020版后路径:/Users/geoffrey/Library/ApplicationSupport/JetBrains/PyCharm2020.12.Windwos平台变动2019版本以前路径:~.PyCharm2019.32020版后路径:... 查看详情

#2019-2020-4《java程序设计》第九周总结(代码片段)

2019-2020-4《Java程序设计》第九周知识总结第十一章:JDBC与MySQL数据库11.1MySQL数据库管理系统下载安装:11.2启动MySQL数据库服务器具体启动过程请看书。命令:mysqld--initialize-insecure其作用是初始化data目录;命令:mysqladmin-uroot-ppassw... 查看详情

2019-2020-2网络对抗技术20175330exp7网络欺诈防范(代码片段)

2019-2020-2网络对抗技术20175330Exp7网络欺诈防范目录实验原理与内容说明实践内容实践原理基础问题回答实验内容任务一:简单应用SET工具建立冒名网站(1分)任务二:ettercapDNSspoof(1分)任务三:结合应用两种技术,用DNSspoof引... 查看详情

2019-2020-2网络对抗技术20175214exp7网络欺诈防范(代码片段)

2019-2020-2网络对抗技术20175214Exp7网络欺诈防范一、实验目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。二、实验内容简单应用SET工具建立冒名网站EttercapDNSspoof结合应用两种技术,用DNSspoof引导特定访... 查看详情

#2019-2020-2网络对抗技术20175333曹雅坤exp7网络欺诈防范

2019-2020-2网络对抗技术20175333曹雅坤Exp7网络欺诈防范实验内容本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有简单应用SET工具建立冒名网站(1分)ettercapDNSspoof(1分)结合应用两... 查看详情

2019-2020-220175226王鹏雲《网络对抗技术》exp7网络欺诈防范(代码片段)

2019-2020-220175226王鹏雲《网络对抗技术》Exp7网络欺诈防范实验内容(1)简单应用SET工具建立冒名网站(2)ettercapDNSspoof(3)结合应用两种技术,用DNSspoof引导特定访问到冒名网站。实验过程任务一、简单应用SET工具建立冒名网站... 查看详情

2019-2020-220175202葛旭阳《网络对抗技术》exp7网络欺诈防范(代码片段)

2019-2020-220175202葛旭阳《网络对抗技术》Exp7网络欺诈防范一、实验任务本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有1.简单应用SET工具建立冒名网站;2.ettercapDNSspoof;3.结合应用... 查看详情

2019-2020-1学期20202429《网络空间安全专业导论》第三周学习总结

2019-2020-1学期20202429《网络空间安全专业导论》第三周学习总结经过前两周的学习,我们已经对电脑的数据处理和存储等有了一定得了解,这些仅仅是在了解计算机,而在第六、七章中,学习了如何使用计算机系统和计算机算法... 查看详情

2019-2020-220175212童皓桢《网络对抗技术》exp7网络欺诈防范(代码片段)

2019-2020-220175212童皓桢《网络对抗技术》Exp7网络欺诈防范目录1.实验目标2.实验内容2.1简单应用SET工具建立冒名网站2.2ettercapDNSspoof2.3结合应用两种技术,用DNSspoof引导特定访问到冒名网站3、答老师问3.1实验收获与感想3.2通常在什... 查看详情