zoukankan      html  css  js  c++  java
  • [CCPC2016]网赛部分比赛代码

    来自HDOJ:

    5833 ( Zhu and 772002 )

      1 /*
      2 ━━━━━┒ギリギリ♂ eye!
      3 ┓┏┓┏┓┃キリキリ♂ mind!
      4 ┛┗┛┗┛┃\○/
      5 ┓┏┓┏┓┃ /
      6 ┛┗┛┗┛┃ノ)
      7 ┓┏┓┏┓┃
      8 ┛┗┛┗┛┃
      9 ┓┏┓┏┓┃
     10 ┛┗┛┗┛┃
     11 ┓┏┓┏┓┃
     12 ┛┗┛┗┛┃
     13 ┓┏┓┏┓┃
     14 ┃┃┃┃┃┃
     15 ┻┻┻┻┻┻
     16 */
     17 #include <algorithm>
     18 #include <iostream>
     19 #include <iomanip>
     20 #include <cstring>
     21 #include <climits>
     22 #include <complex>
     23 #include <cassert>
     24 #include <cstdio>
     25 #include <bitset>
     26 #include <vector>
     27 #include <deque>
     28 #include <queue>
     29 #include <stack>
     30 #include <ctime>
     31 #include <set>
     32 #include <map>
     33 #include <cmath>
     34 using namespace std;
     35 #define fr first
     36 #define sc second
     37 #define cl clear
     38 #define BUG puts("here!!!")
     39 #define W(a) while(a--)
     40 #define pb(a) push_back(a)
     41 #define Rint(a) scanf("%d", &a)
     42 #define Rll(a) scanf("%I64d", &a)
     43 #define Rs(a) scanf("%s", a)
     44 #define Cin(a) cin >> a
     45 #define FRead() freopen("in", "r", stdin)
     46 #define FWrite() freopen("out", "w", stdout)
     47 #define Rep(i, len) for(int i = 0; i < (len); i++)
     48 #define For(i, a, len) for(int i = (a); i < (len); i++)
     49 #define Cls(a) memset((a), 0, sizeof(a))
     50 #define Clr(a, x) memset((a), (x), sizeof(a))
     51 #define Full(a) memset((a), 0x7f7f7f, sizeof(a))
     52 #define lrt rt << 1
     53 #define rrt rt << 1 | 1
     54 #define pi 3.14159265359
     55 #define RT return
     56 #define lowbit(x) x & (-x)
     57 #define onenum(x) __builtin_popcount(x)
     58 typedef long long LL;
     59 typedef long double LD;
     60 typedef unsigned long long ULL;
     61 typedef pair<int, int> pii;
     62 typedef pair<string, int> psi;
     63 typedef pair<LL, LL> pll;
     64 typedef map<string, int> msi;
     65 typedef vector<int> vi;
     66 typedef vector<LL> vl;
     67 typedef vector<vl> vvl;
     68 typedef vector<bool> vb;
     69 
     70 const int maxn = 333;
     71 const int maxm = 2020;
     72 const LL mod = 1000000007;
     73 typedef struct Bucket {
     74     LL b[maxm];
     75 }Bucket;
     76 int n;
     77 LL a[maxn];
     78 bool _p[maxm];
     79 LL prime[maxm];
     80 int pcnt;
     81 LL dp[maxn][maxn];
     82 
     83 void init() {
     84     Cls(_p); pcnt = 0;
     85     For(i, 2, maxm) {
     86         if(_p[i] == 0) {
     87             prime[pcnt++] = i;
     88             for(int j = i * 2; j < maxm; j+=i) {
     89                 _p[j] = 1;
     90             }
     91         }
     92     }
     93 }
     94 
     95 void gao(int i, LL x) {
     96     for(int j = 0; j < pcnt; j++) {
     97         if(x % prime[j]) continue;
     98         int cnt = 0;
     99         while(x % prime[j] == 0) {
    100             x /= prime[j];
    101             cnt ^= 1;
    102         }
    103         dp[i][j] = cnt;
    104     }
    105 }
    106 
    107 LL quickmul(LL x, LL n, LL mod) {
    108     LL ret = 1;
    109     while(n) {
    110         if(n & 1) ret = (ret * x) % mod;
    111         x = (x * x) % mod;
    112         n >>= 1;
    113     }
    114     return ret;
    115 }
    116 
    117 int main() {
    118 //    FRead();
    119     int T, _ = 1;
    120     Rint(T);
    121     init();
    122     W(T) {
    123         Cls(dp);
    124         printf("Case #%d:
    ", _++);
    125         Rint(n);
    126         For(i, 1, n+1) {
    127             cin >> a[i];
    128             gao(i, a[i]);
    129         }
    130         int p = 0;
    131         Rep(i, pcnt) {
    132             For(j, p, pcnt) {
    133                 if(dp[j][i]) {
    134                     For(k, i, pcnt) {
    135                         swap(dp[j][k], dp[p][k]);
    136                     }
    137                     break;
    138                 }
    139             }
    140             if(!dp[p][i]) continue;
    141             For(j, p+1, pcnt) {
    142                 if(dp[j][i]) {
    143                     For(k, i, pcnt) {
    144                         dp[j][k] ^= dp[p][k];
    145                     }
    146                 }
    147             }
    148             p++;
    149         }
    150         cout << (quickmul(2,n-p,mod)-1+mod)%mod << endl;
    151     }
    152     RT 0;
    153 }

    5835 ( Danganronpa ) 

     1 #include <vector>
     2 #include <list>
     3 #include <map>
     4 #include <set>
     5 #include <deque>
     6 #include <queue>
     7 #include <stack>
     8 #include <bitset>
     9 #include <algorithm>
    10 #include <functional>
    11 #include <numeric>
    12 #include <utility>
    13 #include <complex>
    14 #include <sstream>
    15 #include <iostream>
    16 #include <iomanip>
    17 #include <cstdio>
    18 #include <cmath>
    19 #include <cstdlib>
    20 #include <cstring>
    21 #include <ctime>
    22 #include <cassert>
    23 using namespace std;
    24 int s[11];
    25 int main(){
    26     int T,n;
    27     int sum,ans,coco;
    28     scanf("%d",&T);
    29     int pp = 1;
    30     while(T--){
    31         int maxn = 0;
    32         sum = 0;
    33         scanf("%d",&n);
    34         for(int i=0;i<n;i++){
    35             scanf("%d",&s[i]);
    36             sum +=s[i];
    37             maxn = maxn < s[i] ? s[i] : maxn;
    38         }
    39         ans = sum/2;
    40         if(maxn > sum/2){
    41            coco = (sum - maxn) * 2 + 1;
    42            ans = coco > ans ? ans : coco;
    43         }
    44         printf("Case #%d: %d
    ",pp++,ans);
    45     }
    46 }

    5832 ( A water problem ) 

      1 /*
      2 ━━━━━┒ギリギリ♂ eye!
      3 ┓┏┓┏┓┃キリキリ♂ mind!
      4 ┛┗┛┗┛┃\○/
      5 ┓┏┓┏┓┃ /
      6 ┛┗┛┗┛┃ノ)
      7 ┓┏┓┏┓┃
      8 ┛┗┛┗┛┃
      9 ┓┏┓┏┓┃
     10 ┛┗┛┗┛┃
     11 ┓┏┓┏┓┃
     12 ┛┗┛┗┛┃
     13 ┓┏┓┏┓┃
     14 ┃┃┃┃┃┃
     15 ┻┻┻┻┻┻
     16 */
     17 #include <algorithm>
     18 #include <iostream>
     19 #include <iomanip>
     20 #include <cstring>
     21 #include <climits>
     22 #include <complex>
     23 #include <cassert>
     24 #include <cstdio>
     25 #include <bitset>
     26 #include <vector>
     27 #include <deque>
     28 #include <queue>
     29 #include <stack>
     30 #include <ctime>
     31 #include <set>
     32 #include <map>
     33 #include <cmath>
     34 using namespace std;
     35 #define fr first
     36 #define sc second
     37 #define cl clear
     38 #define BUG puts("here!!!")
     39 #define W(a) while(a--)
     40 #define pb(a) push_back(a)
     41 #define Rint(a) scanf("%d", &a)
     42 #define Rll(a) scanf("%I64d", &a)
     43 #define Rs(a) scanf("%s", a)
     44 #define Cin(a) cin >> a
     45 #define FRead() freopen("in", "r", stdin)
     46 #define FWrite() freopen("out", "w", stdout)
     47 #define Rep(i, len) for(int i = 0; i < (len); i++)
     48 #define For(i, a, len) for(int i = (a); i < (len); i++)
     49 #define Cls(a) memset((a), 0, sizeof(a))
     50 #define Clr(a, x) memset((a), (x), sizeof(a))
     51 #define Full(a) memset((a), 0x7f7f7f, sizeof(a))
     52 #define lrt rt << 1
     53 #define rrt rt << 1 | 1
     54 #define pi 3.14159265359
     55 #define RT return
     56 #define lowbit(x) x & (-x)
     57 #define onenum(x) __builtin_popcount(x)
     58 typedef long long LL;
     59 typedef long double LD;
     60 typedef unsigned long long ULL;
     61 typedef pair<int, int> pii;
     62 typedef pair<string, int> psi;
     63 typedef pair<LL, LL> pll;
     64 typedef map<string, int> msi;
     65 typedef vector<int> vi;
     66 typedef vector<LL> vl;
     67 typedef vector<vl> vvl;
     68 typedef vector<bool> vb;
     69 
     70 const int maxn = 10000100;
     71 char str[maxn];
     72 int len;
     73 int mod(int num) {
     74     int ret = 0;
     75     Rep(i, len) {
     76         ret = (int)(((LL)ret * 10 + (str[i] - '0')) % num);
     77     }
     78     return ret;
     79 }
     80 
     81 int main() {
     82 //    FRead();
     83     int _ = 1;
     84     while(Rs(str)!=EOF) {
     85         printf("Case #%d: ", _++);
     86         len = strlen(str);
     87         int num = 0;
     88         if(len <= 10) {
     89             Rep(i, len) {
     90                 num *= 10;
     91                 num += str[i] - '0';
     92             }
     93             if(num == 0 || num % 10001 == 0) {
     94                 puts("YES");
     95                 continue;
     96             }
     97             if(num != 0 || num % 10001 != 0) {
     98                 puts("NO");
     99                 continue;
    100             }
    101         }
    102         int t = mod(10001);
    103         if(t == 0) puts("YES");
    104         else puts("NO");
    105     }
    106     RT 0;
    107 }

    5842 ( Lweb and String )

      1 /*
      2 ━━━━━┒ギリギリ♂ eye!
      3 ┓┏┓┏┓┃キリキリ♂ mind!
      4 ┛┗┛┗┛┃\○/
      5 ┓┏┓┏┓┃ /
      6 ┛┗┛┗┛┃ノ)
      7 ┓┏┓┏┓┃
      8 ┛┗┛┗┛┃
      9 ┓┏┓┏┓┃
     10 ┛┗┛┗┛┃
     11 ┓┏┓┏┓┃
     12 ┛┗┛┗┛┃
     13 ┓┏┓┏┓┃
     14 ┃┃┃┃┃┃
     15 ┻┻┻┻┻┻
     16 */
     17 #include <algorithm>
     18 #include <iostream>
     19 #include <iomanip>
     20 #include <cstring>
     21 #include <climits>
     22 #include <complex>
     23 #include <cassert>
     24 #include <cstdio>
     25 #include <bitset>
     26 #include <vector>
     27 #include <deque>
     28 #include <queue>
     29 #include <stack>
     30 #include <ctime>
     31 #include <set>
     32 #include <map>
     33 #include <cmath>
     34 using namespace std;
     35 #define fr first
     36 #define sc second
     37 #define cl clear
     38 #define BUG puts("here!!!")
     39 #define W(a) while(a--)
     40 #define pb(a) push_back(a)
     41 #define Rint(a) scanf("%d", &a)
     42 #define Rll(a) scanf("%I64d", &a)
     43 #define Rs(a) scanf("%s", a)
     44 #define Cin(a) cin >> a
     45 #define FRead() freopen("in", "r", stdin)
     46 #define FWrite() freopen("out", "w", stdout)
     47 #define Rep(i, len) for(int i = 0; i < (len); i++)
     48 #define For(i, a, len) for(int i = (a); i < (len); i++)
     49 #define Cls(a) memset((a), 0, sizeof(a))
     50 #define Clr(a, x) memset((a), (x), sizeof(a))
     51 #define Full(a) memset((a), 0x7f7f7f, sizeof(a))
     52 #define lrt rt << 1
     53 #define rrt rt << 1 | 1
     54 #define pi 3.14159265359
     55 #define RT return
     56 #define lowbit(x) x & (-x)
     57 #define onenum(x) __builtin_popcount(x)
     58 typedef long long LL;
     59 typedef long double LD;
     60 typedef unsigned long long ULL;
     61 typedef pair<int, int> pii;
     62 typedef pair<string, int> psi;
     63 typedef pair<LL, LL> pll;
     64 typedef map<string, int> msi;
     65 typedef vector<int> vi;
     66 typedef vector<LL> vl;
     67 typedef vector<vl> vvl;
     68 typedef vector<bool> vb;
     69 
     70 const int maxn = 100100;
     71 char str[maxn];
     72 int ascii[257];
     73 int a[maxn];
     74 int n, q;
     75 int ord;
     76 int dp[maxn];
     77 int s[maxn];
     78 
     79 int bs(int ll, int rr, int v) {
     80     while(ll <= rr) {
     81         int mm = (ll + rr) >> 1;
     82         if(s[mm] < v) ll = mm + 1;
     83         else rr = mm - 1;
     84     }
     85     return ll;
     86 }
     87 
     88 int main() {
     89 //    FRead();
     90     int T, _ = 1;
     91     Rint(T);
     92     W(T) {
     93         ord = 1; q = 1;
     94         Rs(str);
     95         memset(ascii, -1, sizeof(ascii));
     96         memset(dp, 0, sizeof(dp));
     97         memset(s, 0x7f7f7f7f, sizeof(s));
     98         printf("Case #%d: ", _++);
     99         n = strlen(str);
    100         Rep(i, n) {
    101             if(ascii[str[i]] == -1) {
    102                 ascii[str[i]] = ord;
    103                 a[q++] = ord++;
    104             }
    105             else {
    106                 a[q++] = ascii[str[i]];
    107             }
    108         }
    109         int ans = 0;
    110         For(i, 1, n+1) {
    111             dp[i] = bs(1, i, a[i]);
    112             s[dp[i]] = min(s[dp[i]], a[i]);
    113             ans = max(ans, dp[i]);
    114         }
    115         printf("%d
    ", ans);
    116     }
    117     RT 0;
    118 }
  • 相关阅读:
    mysql登录等
    软工实践寒假作业(1/2)
    结对作业二——顶会热词统计的实现
    基于okhttp的安卓端网络编程
    Le vent se lève, il faut tenter de vivre
    软件评测
    一道算法题
    结对作业一
    软工实践寒假作业(2/2)
    实验六:Mininet脚本实现控制交换机行为
  • 原文地址:https://www.cnblogs.com/kirai/p/5770875.html
Copyright © 2011-2022 走看看