精华内容
下载资源
问答
  • <div><p><em>Created by <strong>nlewycky</strong> at 2016-11-25 19:38:02</em>: <p>On Debian, setting CLANG=/usr/bin/clang-4.0 doesn't work because the include paths are different for C and C&#...
  • 题意: 给你一个01串s,问存在多少种数对&lt;a,b&gt;&lt;a,b&gt;<a,b>,使得a⊕b=sa \oplus b=sa⊕b=s。需满足a和b都是回文串,并且a和b的len&lt;nlen&lt;...思路...

    题意:
    给你一个01串s,问存在多少种数对&lt;a,b&gt;&lt;a,b&gt;,使得ab=sa \oplus b=s。需满足a和b都是回文串,并且a和b的len&lt;nlen&lt;n。数据保证s的开头是1,若s[i]=?s[i]=?则该位置既可以是1,又可以使0。
    题解:
    思路来自官方题解。
    本题可以转化为图论问题。首先考虑a和b的len都小于n,串s的开头一定是1,不妨假设b的开头是1,a的开头是0,那么a就是含有前导0的数,而b的长度一定为len。我们就可以枚举a的长度,最开头的数字是1。
    1.保证回文:对于a串和b串,第i个与第n-i+1个点建边,边权为0,表示两数相等。
    2.保证亦或后的结果:如果第i为是’1’则两点间建边,边权为1,表示不相等,如果为’0’,边权为0,表示相等。
    接下来就是找图中连通块的个数。每个连通块的方案是两种,即0或1两种取反后有两种。
    但是有问题:比如a和b的开头都是确定的,都是1,而且a的前导0也是给定的,这样很多连通块都是唯一的。
    我们可以新加两个点,一个表示为0,一个表示为1。把所有已知的位置连向这两个点,这样已知点的都在同一个连通块里了。所以对于枚举的a的每一种情况,答案既是2C2^C,C即联通块的个数。
    代码:

    #include <bits/stdc++.h>
    
    #define __ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
    #define ll long long
    #define mem(a, b) memset(a, b, sizeof a)
    using namespace std;
    
    const int maxn = 5e3 + 10;
    const ll mod = 998244353;
    
    ll pow_mod(ll a, ll b, ll m) {
        ll ans = 1;
        while (b) {
            if (b & 1)ans = ans * a % m;
            a = a * a % m;
            b >>= 1;
        }
        return ans;
    }
    
    string s;
    struct pxy {
        int to, next, vi;
    } e[maxn * 10];
    int n, head[maxn], cnt, col[maxn];
    
    void ins(int x, int y, int z) {
        e[++cnt].to = y;
        e[cnt].next = head[x];
        head[x] = cnt;
        e[cnt].vi = z;
        e[++cnt].to = x;
        e[cnt].next = head[y];
        head[y] = cnt;
        e[cnt].vi = z;
    }
    
    bool check(int x) {
        if (col[x] == -1)col[x] = 0;
        for (int i = head[x]; i; i = e[i].next) {
            if (col[e[i].to] == -1) {
                if (e[i].vi == 1) {
                    col[e[i].to] = 1 - col[x];
                } else {
                    col[e[i].to] = col[x];
                }
                if (!check(e[i].to))return 0;
            } else {
                if (e[i].vi == 1) {
                    if (col[x] != 1 - col[e[i].to])return 0;
                } else {
                    if (col[x] != col[e[i].to])return 0;
                }
            }
        }
        return 1;
    }
    
    ll solve(int n, int m) {
        cnt = 0;
        mem(head, 0);
        mem(col, -1);
        mem(e, 0);
        for (int i = 1; i + i <= n; ++i) {
            ins(i, n - i + 1, 0);
        }
        for (int i = 1; i + i <= m; ++i) {
            ins(n + i, n + m - i + 1, 0);
        }
        for (int i = n + m + 1; i <= n + n; ++i) {
            ins(i, n + n + 2, 0);
        }
        ins(n + n + 1, n + n + 2, 1);
        for (int i = 1; i <= n; ++i) {
            if (s[i - 1] == '1')ins(i, n + i, 1);
            if (s[i - 1] == '0')ins(i, n + i, 0);
        }
        ins(n, n + n + 1, 0);
        ins(n + m, n + n + 1, 0);
        int c = 0;
        for (int i = 1; i <= n + n + 2; ++i) {
            if (col[i] == -1) {
                if (check(i)) {
                    c++;
                } else return 0;
            }
        }
        return pow_mod(2, c - 1, mod);
    }
    
    int main() {
        __;
        cin >> s;
        reverse(s.begin(), s.end());
        n = s.size();
        ll ans = 0;
        for (int i = 1; i < n; ++i) {
            ans += solve(n, i);
            ans %= mod;
        }
        cout << ans << endl;
        return 0;
    }
    
    展开全文
  • (n≤1000)(n \leq 1000)(n≤1000) 链接: https://codeforces.com/contest/1161/problem/D 解题思路: bbb 的二进制位数固定为 nnn 且 aaa 的二进制位数小于 nnn,可以枚举 aaa 的位数 m,然后考虑该情况的方案数。...

    题意:

    给定一个长度为 nn 的字符串 ss,只包含 0,1,?0, 1, ? 三种字符,且保证 s1s_111,求有多少二元组 (a,b)(a, b) 满足 1a<b2n1 \leq a \lt b \leq 2^na,ba, b 的二进制表示是回文串,且 aba \oplus b 的二进制表示能匹配 ss。答案模上 998244353998244353(n1000)(n \leq 1000)

    链接:

    https://codeforces.com/contest/1161/problem/D

    解题思路:

    bb 的二进制位数固定为 nnaa 的二进制位数小于 nn,可以枚举 aa 的位数 m<nm \lt n,然后考虑该情况的方案数。a,ba, b 对应的第 iiai,bia_i, b_i 满足 aib=sia_i \oplus b = s_i(当 si ?s_i \neq ~?),aiani+1=0a_i \oplus a_{n - i + 1} = 0bibmi+1=0b_i \oplus b_{m - i + 1} = 0,并且 an10=1a_{n - 1} \oplus 0 = 1bm10=1b_{m - 1} \oplus 0 = 1,显然我们可以将 ai,bia_i, b_i 作为变量解异或方程组,但注意到每个方程组只有两个变量,那么可以用图来表示,每个结点可被染 0/10/1,额外添加一个结点,表示 00,若异或为 00 则连 w=0w = 0 的边,表示两点染色需相同,否则连 w=1w = 1,之后染色判定是否存在解,若有 cc 个连通分量,答案为 2c12^{c - 1},除了 00 所在的连通分量有唯一染色方案,其他连通分量可以有两种染色方案。

    参考代码:

    #include<bits/stdc++.h>
     
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> pii;
    #define sz(a) ((int)a.size())
    #define pb push_back
    #define lson (rt << 1)
    #define rson (rt << 1 | 1)
    #define gmid (l + r >> 1)
    const int maxn = 3e3 + 5;
    const int inf = 0x3f3f3f3f;
    const int mod = 998244353;
    
    vector<pii> G[maxn];
    char s[maxn];
    int tag[maxn], pw[maxn];
    int n;
    
    int dfs(int u, int c){
    
        tag[u] = c;
        for(auto &e : G[u]){
    
            int v = e.second, w = e.first;
            if(~tag[v] && (tag[v] ^ tag[u] ^ w)) return 0;
            if(tag[v] == -1 && !dfs(v, c ^ w)) return 0;
        }
        return 1;
    }
    
    void add(int u, int v, int w){
    
        G[u].pb({w, v}), G[v].pb({w, u});
    }
    
    int solve(int m){
    
        int tot = n + m + 1;
        for(int i = 1; i <= tot; ++i) G[i].clear();
        for(int i = 1; i <= n / 2; ++i) add(i, n - i + 1, 0);
        for(int i = 1; i <= m / 2; ++i) add(n + i, n + m - i + 1, 0);
        add(n, tot, 1), add(n + m, tot, 1);
        for(int i = 1; i <= m; ++i){
    
            if(s[i] != '?') add(i, n + i, s[i] - '0');
        }
        for(int i = m + 1; i <= n; ++i){
    
            if(s[i] != '?') add(i, tot, s[i] - '0');
        }
        int ret = 0;
        for(int i = 1; i <= tot; ++i) tag[i] = -1;
        for(int i = tot; i >= 1; --i){
    
            if(~tag[i]) continue;
            if(!dfs(i, 0)) return 0;
            ++ret;
        }
        return pw[ret - 1];
    }
    
    int main(){
     
        ios::sync_with_stdio(0); cin.tie(0);
        cin >> s + 1;
        n = strlen(s + 1);
        reverse(s + 1, s + 1 + n);
        pw[0] = 1;
        for(int i = 1; i < maxn; ++i) pw[i] = pw[i - 1] * 2 % mod;
        int ret = 0;
        for(int i = 1; i < n; ++i){
    
            ret = (ret + solve(i)) % mod;
        }
        cout << ret << endl;
        return 0;
    }
    
    展开全文
  • 基于isp1161的usbd摄像头嵌入式linux设备驱动
  • P1161 开灯

    2020-08-14 17:15:26
    注意: 实数 a 一定要用双精度,有几组测试数据超过了单精度范围 AC代码: #include<cstdio> #include<cstring> using namespace std; ... scanf("%d", &n); while(n--){ dou..

    在这里插入图片描述
    在这里插入图片描述

    注意:

    实数 a 一定要用双精度,有几组测试数据超过了单精度范围

    AC代码:

    #include<cstdio>
    #include<cstring>
    
    using namespace std;
    
    int arr[2000005];
    
    int main(){
        memset(arr, 0, sizeof(arr));  //数组置 0: 0 关;1 开
        int n;
        scanf("%d", &n);
        while(n--){
            double a;
            int t;
            scanf("%lf%d", &a, &t);
            for(int i=1; i<=t; i++){
                if(arr[int(i*a)]==1) arr[int(i*a)]=0;
                else arr[int(i*a)] = 1;
            }
        }
    
        for(int i=0; ;i++){
            if(arr[i]==1){
                printf("%d", i);
                break;
            }
        }
        return 0;
    }
    
    展开全文
  • P1161 开灯

    2020-08-18 19:17:37
    #include<stdio.h> #include<ctype.h> #include<string.h> #include<math.h> #include<stdlib.h> #define f(i,j,n) for(i=j;i<=n;i++) //for循环简写,福利福利... scanf("%d", &.

    在这里插入图片描述

    #include<stdio.h>
    #include<ctype.h>
    #include<string.h>
    #include<math.h>
    #include<stdlib.h>
    #define f(i,j,n) for(i=j;i<=n;i++) //for循环简写,福利福利~
    
    int main()
    {
      
        int n, t, i, j, ans = 0;
        double a;
        scanf("%d", &n);
        f(i, 1, n)			//循环n次 
        {
            scanf("%lf %d", &a, &t);
            f(j,1,t)				//每一次再循环t次 
                ans ^= (int)(j*a); //重点:位运算,直接异或。这里注意要用int强制把j*a的值转换成整型
        }
        printf("%d", ans); //输出ans即可
        return 0; 
    }
    
    展开全文
  • 1161:转进制

    2018-07-26 22:55:03
    #include&lt;iostream&gt; #include&lt;cstdio&gt; ...char tmp[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; void work(int a,int b) {    if(...
  • 做ecshop中又遇到个问题,只是因为写代码太不小心导致一...Parse error: syntax error, unexpected T_ENDFOREACH in D:\PHPnow\vhosts\127.0.0.3\ecyl\includes\cls_template.php(1161) : eval()'d code on line 10...
  • ZOJ1161-Gone Fishing

    2019-10-29 20:16:14
    #include <stdio.h> #include <string.h> #define NUM 30 ...int d[NUM]; int t[NUM]; int plan[NUM]; int best; void greedy(int pos, int time) { if (time <= 0) return; int ...
  • poj1161 The Suspects

    2011-08-29 18:03:44
    并查集 #include using namespace std; #define N 30000 #define G 501 int p[N], group[N]; int main() { int n, g; while(scanf("%d %d",
  • 1161 -- 路径打印

    千次阅读 2015-08-31 17:06:52
    路径打印 Time Limit:1000MS Memory Limit:65536K Total Submit:8 Accepted:0 Description 给你一串路径,譬如: ...a\d\e ...d\ ...你把这些路径中蕴含的目录结构给画出来,子目录直接列在父目录下面,并比父目录向...d
  • #include<... scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%lf%d", &a, &t); for (j = 1; j <= t; j++) { if (b[(int)(j * a)] == 0) { b[(int)(j
  • #include #include int c[100001]={}; int cool[100001]={}; int n; int lowbit(int x) { return x&(-x); } void add(int i,int d) { while(i) { c[i]+=d; i+=lowbit(i); } }
  • poj 1161 Floyd+枚举

    2015-06-02 12:07:00
    题意是: 给出n个点,围成m个区域。...将区域按1~m编号,d[i][j]表示第 i 个区域到第 j 个区域的最短距离,跑一遍Floye算法O(m^3)后,枚举选择的区域,找出其中穿过边数最小值即可。 建图:题目对于每个区域的描述...
  • 1161.goods transfer There are n backpacks, each of which can carrya[i]goods, and the maximum capacity of each backpack isb[i]. If it takes 1 second to transfer one piece of goods, how many backpacks ...
  • 要点 外层暴力枚举转的“角度”,会发现...一个小优化是只需要枚举n的质约数,质约数d含义为把圆划分成d份。这样划分成6份根本不必要枚举,如果6份行的话,2份的时候就跑出去了;如果6份不行的话……所以就不用枚举...
  • poj 1161 并查集 入门题

    千次阅读 2013-04-09 22:07:46
    并查集,每一组合选择任一结点作合并操作,维护数组d表示以该结点为根的子结点(包括自己)的个数 d[find(0)]就是答案 #include #include #include #include #include #include #include #include #...
  • Description 从键盘输入任意一个字符串和一个字符,要求从该字符串中删除所有该字符。 Input ...输入有多组测试数据。...D Sample Output ABCD AS fg fhd Source 零起点学算法 Code 一开...
  • 每个湖可以钓到f[i]条鱼,但是钓过一次后,能够钓到鱼数量减少d[i],d[i]<=0则此湖再也钓不到鱼了。 现在问约翰最多可以钓到多少条鱼,并且在每个湖停留的时间。 解题思路 第一步转换,由于有分钟、小时,且5分钟...
  • <div><p>Here are the screenshots of the same: ...<img alt="screenshot_2015-01-20-20-14-32" src="https://cloud.githubusercontent.com/assets/5559703/5831693/5d542f08-a15d-11e4-96c0-8f258f0efa66.png" /> ...
  • <div><p>Tested on e5b8066e1e0f4a69a5d1161dd75aea67014314b5 commit</p><p>该提问来源于开源项目:kamailio/kamailio</p></div>
  • Iphone 开发环境

    2013-05-15 14:00:57
    http://cache.baiducontent.com/c?m=9d78d513d99803f505b1c3690d67c0166d43f3102ba7d5020cd48449e3732b315016e6ac57550774d2d13b275fa0131aacb22173441e3decd992d5168aac925f69dd7773310b8636438e46b29d1161dc7bcd1b
  • <p><img alt="screen shot 2016-11-25 at 3 54 16 pm" src="https://img-blog.csdnimg.cn/img_convert/6a4282aee8b18741f668a3d1161d84b7.png" /></p><p>该提问来源于开源项目:jossmac/react-images</p></div...
  • 0.12-72 incorrect MC version

    2020-12-27 06:52:12
    <div><pre> [18:05:25] [Server thread/FATAL] [FML]: The mod ...https://gist.github.com/701edfb4ad568f6d9eb056d1161c952f</p><p>该提问来源于开源项目:BluSunrize/ImmersiveEngineering</p></div>
  • <pre><code>0xFFD8FFE000104A46494600010201004800480000FFE10BA...D1161E48F8ABFBA0F0B3F0AC1452C63DC180097B89846FDA7D38B8B7D6648E64A8C365B66C20440FBD57B6D1C4894BED3411A441E0FC50EEB6A92894808DCEDD20C...
  • /home/myadmin/.gradle/caches/modules-2/files-2.1/org.robolectric/robolectric/3.6.1/cb01d1161d258693d5efe1a8fbc1e6185cecb76e/robolectric-3.6.1.pom /home/myadmin/.gradle/caches/modules-2/metadata-2.23/...
  • d application will crash at importing msgpack. <p>Actually I'm still new to Python and I haven't isolated the issue perfectly. It may be an issue of Py2EXE zipimporter side, or msgpack-python....
  • 基本情况 题目:Learning depth from single monocular images 出处:Saxena, A., Chung, S. H., & Ng, A.... 1161-1168). 摘要 我们考虑了从单目图像进行深度估计的任务。针对这个问题,我们采..

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 548
精华内容 219
关键字:

d1161