ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【ZJSU - 大红大紫:ACM - Template】比赛用模板13:杂类

2022-09-10 13:01:39  阅读:149  来源: 互联网

标签:13 return int 大红大紫 tt ZJSU double mid2 mid1


杂类

与、或、异或

运算 运算符、数学符号表示 解释
&and 同1出1
|or 有1出1
异或 ^、\(\bigoplus\)、xor 不同出1

一些结论:

对于给定的 \(X\) 和序列 \([a_1,a_2,…,a_n]\) ,有:\(\pmb {X=(X \&a_1)or(X\&a_2)or…or(X\&a_n)}\) 。
原理是 \(and\) 意味着取交集,\(or\) 意味着取子集。来源 - 牛客小白月赛49C


三分

\(\mathcal{Provided \ by \ \pmb{Hamine}}\) 。给出一个 \(n\) 次函数,保证在范围 \([l, r]\) 内存在一点 \(x\),使得 \([l, x]\) 上单调增,\([x, r]\) 上单调减。求出 \(x\) 的值。

#include <bits/stdc++.h>
using namespace std;
#define eps 1e-8
const int N = 15;
int n;
double l, r, a[N];
double f(double x){
    double ans = 0;
    for (int i = 0; i <= n; i ++ )
        ans = ans * x + a[i];
    return ans;
}
int main(){
    cin >> n >> l >> r;
    for (int i = 0; i <= n; i ++ )
        cin >> a[i];
    while (r - l > eps){
        double mid1 = l + (r - l) / 3.0, mid2 = r - (r - l) / 3.0;
        if ( f(mid1) > f(mid2) )
            r = mid2;
        else
            l = mid1;
    }
    printf("%.5lf\n", l);
    return 0;
}

读入优化 \(\tt fread\)

可以处理正、负整数。

char buf[1 << 21], *p1 = buf, *p2 = buf;
inline int getc() {
    return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++;
}
inline int read() {
    int ret = 0, f = 0; char ch = getc();
    while (!isdigit(ch)) {
        if (ch == '-') f = 1;
        ch = getc();
    }
    while (isdigit(ch)) {
        ret = ret * 10 + ch - 48;
        ch = getc();
    }
    return f ? -ret : ret;
}

大整数类 \(\tt \_\_int128\)

只在基于 \(\tt Lumix\) 系统的环境下可用,38位精度,除输入输出外与普通数据类型无差别。输入输出流定义如下:

__int128 read() {
    int128 x = 0; bool f = 0; char c = getchar();
    while (c < '0' || c > '9') {
        if (c == '-') f = 1;
        c = getchar();
    }
    while (c >= '0' && c <= '9') {
        x = (x << 1) + (x << 3) + (c ^ 48);
        c = getchar();
    }
    return f ? -x : x;
}
void write(__int128 x) {
    if (x < 0) putchar('-'), x = -x;
    if (x > 9) write(x / 10);
    putchar(x % 10 + '0');
}

对拍版子

  • 数据构造
int r(int a, int b) { //随机数构造
    return (long long)rand() * rand() % (b - a + 1) + a;
}
int main(){
    freopen("3.txt", "w", stdout); //输出文件
    srand((unsigned)time(0)); //种子传入
    return 0;
}
  • \(\tt{}Windows\) 版 \(\tt{}bat\)
:loop
3
2
1 
fc 1.out 2.out
if errorlevel==1 pause
goto loop
  • \(\tt{}C++\) 版 \(\tt{}bat\)
int main() {
    for(int Case = 1; Case <= 10000; Case ++) {
        cout << "==============\n";
        system("3.exe"); system("1.exe");
        
        double start = clock();
        system("2.exe");
        double end = clock();
        
        if(system("fc 1.out 2.out")) { puts("WA"); break; }
        else { cout << end - start << "ms\n"; }
    }
    return 0;
}

标签:13,return,int,大红大紫,tt,ZJSU,double,mid2,mid1
来源: https://www.cnblogs.com/WIDA/p/16676300.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有