有趣的數——構造符合條件的數
給你乙個區間,問有多少個數符合每一位中,只有乙個數字和其他數字不同,也就是其他數字都相同,有且只有乙個異類;
資料範圍是1e16;
因為只考慮數量而不用管大小;
只要0到9列舉出來就好了;
#include#include#include
#include
using
namespace
std;
typedef
long
long
ll;map
int>mp;
ll l,r;
int a[20
];int check(int x,int
len)
if(sum>=l&&sum<=r)
//printf("%d\n",sum);
return0;
}else
return0;
}int
ans;
intmain()}}
}printf("%d
",ans);
return0;
}
記得判重,用的map省心;
歡樂abc——連續區間找相同的量
給你乙個字串,乙個區間中a,b,c的數量如果相等,這樣的區間的個數是多少,區間要連續;
資料範圍1e6;
用字首和記錄abc的個數;
如果a[j]-a[i-1]=b[j]-b[i-1],b[j]-b[i-1]=c[j]-c[i-1],即a[j]-b[j]=a[i-1]-b[i-1],b[j]-c[j]=b[i-1]-c[i-1],這樣的區間i到j就是合法的;
(a[i]-b[i],b[i]-c[i])為乙個元素,訪問前方有多少相等的元素;
我們還可以再次轉化,令a=1e7,b=-999999,c=-1;
用sum記錄字首和,再sort一遍,求相鄰的星通的數;
因為排序過後,相鄰的數如果相等,說明在這兩個數之間a+b+c=0;也就是三個字元的數量相等;
#include#include#include
#include
using
namespace
std;
const
int maxn=1e6+10
;char
s[maxn];
int a=10000000,b=-9999999,c=-1
;long
long
sum[maxn];
intans;
intmain()
sort(sum,sum+len+1
);
int last=0
;
for(int i=1;i<=len;i++)
else last=i;
}printf("%d
",ans);
return0;
}
打遊戲小強又雙叒叕一天隨手ak的zroi的j轉s模擬賽。ak完了的小強覺得oi太簡單了,太沒意思了,於是開始打起了更有挑戰的遊戲。
小強在遊戲裡打怪。有一次,他一下子遇到了 n
'>n
個怪物。 每個怪物有乙個生命值,第 i
'>i
個怪物的生命值是 h
i'>
hi。而小強除了生命值之外,還有乙個屬性是魔法值 m
'>
m。小強和怪物們依次行動。每一回合,小強先行動,然後怪物們同時行動。小強每次可以選擇以下行動之一:
• 普通攻擊:令某個怪物的生命值減少 1。
• 重擊:消耗 1 魔法值,令某個怪物的生命值減少 2。
• 群體攻擊:消耗 1 魔法值,令全體怪物的生命值減少 1。
而每個存活的怪物(生命值嚴格大於 0)每次會令小強的生命值減少 1。假設小強有足夠的生命值來維持存活,小強想知道自己至少需要被消耗多少生命值才能擊敗所有怪物。
第一行為兩個正整數 n
'>n
和 m'>m
。第二行為 n
'>n
n 個正整數,第 i
'>i
個數為 h
i'>hi
ZROI 2018 0821 暑假普轉提模擬賽
60ptsn 10 60 ptsn 10 全排列並分別計算時間 話說暴力分是真的良心 100ptsn 1000 100ptsn 1000 因為期望具有可加性,於是我們可以考慮第 i i 個人在第 j role presentation j j個位置對答案的貢獻,累加即可。時間複雜度 n2 n 2 i...
ZR 539 19普轉提 4 和 題解
給定乙個數字 n 請問有哪些區間 l,r 使得 sum r i n 請按 l 從小到大的順序輸出所有區間。根據題意我們可以列出方程 frac n 也就是 l r r l 1 n times 2 於是我們可以列舉 n 的因數 x 令 y frac n x 判斷是否有兩數和為 y 差為 x 即可。這裡假...
題解 總結 普轉提七聯測 Day2
小強作為oi圈爸爸級別的人物,有一天隨手ak的zroi的j轉s模擬賽。ak完了的小強閒得無聊,於是隨手在紙上面寫了幾個看上去非常有規律的數字,555655,24444,7787,110。他覺得這些數字非常的有趣,並開心地拍起了手。於是小強定義乙個有趣的數為 對於乙個正整數,對於其所有的數字,當且僅當...